I’ve run into something similar when trying to put a KVM web UI behind a reverse proxy. A straight HTTPS reverse proxy usually isn’t enough because the KVM uses some paths and connections that don’t always translate well.
What worked for me was combining Nginx with FRP (Fast Reverse Proxy):
In Nginx, I set up a simple HTTPS block pointing /kvm/ to the KVM’s web port.
In FRP, I forwarded the local KVM port through my server so it’s reachable even if the device is behind NAT.
Once that was in place, the interface loaded fine through my domain. You just need to make sure the paths line up (e.g., /kvm/ with the trailing slash) and that SSL is handled cleanly either at Nginx or on the KVM side.
One thing to watch out for: the video stream sometimes won’t load if the proxy isn’t passing upgrade headers or if there are absolute paths in the KVM UI. A quick tweak with Nginx headers or sub_filter usually fixes that.
If you don’t want to deal with FRP, tools like Caddy can also work, but I’ve seen people hit issues where the UI loads but the video stays blank.
Curious — does your setup fail at loading the page at all, or is it just the video/stream part that breaks?