nginx 配置:

upstream nova
{
server 11.0.0.2:6080;
}
server {
listen 6080 default_server ssl;
server_name _;
ssl_certificate /data/skyline-console/fullchain.pem;
ssl_certificate_key /data/skyline-console/privkey.pem;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
location / {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_redirect off;
proxy_pass http://nova;
}
location /wss {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto http;
proxy_redirect off;
proxy_pass http://nova;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connetion $conn_upgrade;

}
access_log on;
}

vnc_auto.html
这个文件所在位置:/usr/share/novnc 全局查找一下就好
页面上,不用看引入的js,只看页面中js,
在< head > 中 位置如下

大致看一眼就能看来他想用websocket
往下找,

这个位置,是表明,这个页面会根据 https还是http来更换端口,
接着往下看

此处是重点,他在页面中拼接了一个 url地址供给rfb去调用后面websocket,同样根据是否是https链接,来选择是ws还是wss,也就是说 websocket的连接地址是在此处生成的。

红色框内的内容是我自己 修改源代码 加入进去的 ,为了方便查看

url += "/wss" + path;
1
其中这一句是用于nginx 转发websocket的ws://*** 用的
也就是说在我修改完源代码页面后,如果访问https 控制台地址,websoket的链接是:

wss:// * * * * */wss?token=* * * * * * *
1
这种格式
而其中的/wss是我自己写的,你们写成别的也可以 比如/websocket 啥都行,但是要在nginx配置中对应,这个主要是nginx监听websocket 以转发用的。
————————————————

修改后的代码文件在技术资料里面有压缩包

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/weixin_43678956/article/details/125892512

 

发表评论

邮箱地址不会被公开。 必填项已用*标注