本机的websocket服务地址为ws://127.0.0.1:8765, 而我们想对外服务的地址为ws://ws.example.com:8080, 这个时候就可以使用nginx进行反向代理进行服务部署。
1 nginx反向代理websocket服务
websocket服务又分为两种,一种是不需要ssl证书的ws,一种是需要ssl证书的,就如同http和https服务一样,下文给出了nginx配置的详细信息。
1.1 反向代理websocket服务(ws)
server {
listen 8080; # 这里填对外提供服务的端口
server_name ws.example.com; # 这里填的你域名或者ip
add_header Access-Control-Allow-Origin *;
location / {
#添加wensocket代理的目标服务器
proxy_pass http://127.0.0.1:8765; # 这里填你的websocket本机服务地址
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_connect_timeout 1800s;
proxy_send_timeout 1800s;
proxy_read_timeout 1800s;
}
}
1.2 反向代理websocket ssl服务(wss)
server {
listen 8080 ssl; # 这里填对外提供服务的端口
server_name ws.example.com; # 这里填的你域名或者ip
ssl_certificate /etc/nginx/xxx.com.pem; # 这里填ssl证书的pem
ssl_certificate_key /etc/nginx/xxx.com.key; # 这里填ssl证书的key
ssl_session_timeout 5m;
ssl_session_cache shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 SSLv2 SSLv3;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;
ssl_verify_client off;
add_header Access-Control-Allow-Origin *;
location / {
#添加wensocket代理
proxy_pass http://127.0.0.1:8765; # 这里填你的websocket本机服务地址
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_connect_timeout 1800s;
proxy_send_timeout 1800s;
proxy_read_timeout 1800s;
}
}
本文作者:StubbornHuang
版权声明:本文为站长原创文章,如果转载请注明原文链接!
原文标题:nginx – 反向代理websocket服务
原文链接:https://www.stubbornhuang.com/2806/
发布于:2023年09月20日 13:21:10
修改于:2023年09月20日 13:22:33
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论
52