网上有很多文章都写怎么配置,但是很多都是wss连不上的,经过摸索了很久才把wss调通,然后顺便把ws http https整合进来。
1.需要准备清单列表:websocket服务端一个,websocket客户端一个,node.js服务端一个,安装nginx。
2.配置文件分析
2.1.第一个server配置文件, http ,ws关键配置讲解
端口 listen 80;这里http和ws都用 用80端口,可以根据实际情况更改。
location / {#http 这个是http的配置信息,proxy_pass http://127.0.0.1:3000;#代理nodejs服务
location /ws{#ws 这个是ws的配置信息,proxy_pass http://你的域名;
server {#http
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {#http
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Nginx-Proxy true;
proxy_set_header Connection "";
proxy_pass http://127.0.0.1:3000;#代理nodejs服务
proxy_redirect default;
#root html;
#index index.html index.htm;
}
location /ws{#ws
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-Ip $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Nginx-Proxy true;
proxy_redirect off;
client_max_body_size 10m;
proxy_pass http://你的域名;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_connect_timeout 300s;
proxy_read_timeout 300s;
proxy_send_timeout 300s;
}
}
2.2.第二个server配置文件, https ,wss关键配置讲解
端口443listen 443 ssl http2;#默认不要改。
ssl_certificate C:/certificate/xxxx.pem;#证书文件
ssl_certificate_key C:/certificate/xxx.key;#证书文件
location / {#https 这个是https的配置信息,proxy_pass http://127.0.0.1:3000;#代理nodejs服务
location /ws{#wss 这个是wss的配置信息,proxy_pass http://你的域名