问下大家nginx如何配置http,https,wss
我这边服务器上有一个服务node服务,监听8080端口,这服务是将视频流变成可以直接网页播放的帧,然后就需要在服务器上配置websocket,这样前端就能直接对接这服务,然后我用宝塔已经申请了ssl证书了,然后nginx里面配置了https,然后
if ($server_port !~ 443){
rewrite ^(/.*)$ https://$host$1 permanent;
}
其他端口都强制转到https,
现在是https能访问,我在nginx里面配置wss
location /wss {
proxy_pass http://127.0.0.1:8080/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 600s;
}
当我用wss://域名:8080时就提示连接失败,用ws://ip地址:8080时提示连接成功,能教我下如何配置websocket吗,ip地址的那个nginx我都没有配置wss直接就成功了?
正确地址是
wss:// 域名/wss
,前提是https://域名
能访问node 搭建的 websocket 服务是真正的服务地址,域名访问 和 配置 ssl 证书是 nginx 的工作,要实现域名 以及 wss 访问 websocket,就需要通过 nginx 代理到 websocket 服务,而不是以 ws://ip:8080 直连,nginx 的作用就是代理。
你问的实在不想回答
wss 访问的也是443端口,前端你直接使用wss:// 域名/wss链接就可以了

这里监听到/wss 会反向代理到 127.0.0.1:8080
访问: wss:// 域名/wss
分享一个我线上跑的
前端调用
最后这样是成功的,在宝塔上面新建一个网站,因为没有其他域名就另外用一个端口,然后申请ssl正式,配置后就能连接成功,但是把这段配置到80端口,就报连接失败,也不知道为什么?
贴你的全部配置出来
这个是我用laradock配置的,可以给你这边提供下参考,具体把workspace换成你服务器对应的ip应该就可以了
最近开发了聊天类的项目,这是此项目的 wss 配置,你可以参考一下,主要是 nginx https 服务反向代理 ws 的服务。
按照这种配置,你的wss服务应该是
域名/wss