我想使用socket.io通过nginx和ssl配置一个node.js项目,但是我失败了,当我启动它时会出现如下错误:
我花了整整一个中午搜索并阅读文档,但仍然无法弄清楚如何解决这个问题。如果有人遇到过这个问题或对此有任何想法,请帮助我,非常感谢。
这是我的客户端js代码:
let socket = io.connect('//wechat.pageguy.tech/ws', {transports: ['websocket']});
这是nginx代码:
server {
listen 443;
server_name wechat.pageguy.tech;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Real-IP $remote_addr;
#charset koi8-r;
#access_log /var/log/nginx/log/host.access.log main;
ssl on;
ssl_certificate /etc/ssl/private/pageguy.crt;
ssl_certificate_key /etc/ssl/private/pageguy.key.unsecure;
location / {
#root /usr/share/nginx/html;
#index index.html index.htm;
proxy_pass http://localhost:3335;
}
location /ws/ {
proxy_pass http://localhost:3005;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 86400;
}
}
我的快递端口是3335,我的socket.io端口是3005.在我在nginx配置文件中添加ssl之前一切都很好。
答案 0 :(得分:0)
没有人帮我555,但我自己解决了问题。
在客户端js代码:
let socket = io.connect('https//wechat.pageguy.tech/', {transports: ['websocket']});
在nginx配置文件中:
location /socket.io/(not /ws/ because its default value)