配置 nginx 代理 websocket (wss)
以下是一个完整的 nginx 配置示例,用于代理 websocket 安全连接 (wss)。该配置包含了 ssl 证书设置和反向代理部分。
server {
listen 443;
server_name your_domain.com;
ssl on;
ssl_certificate /path/to/your_certificate.crt;
ssl_certificate_key /path/to/your_private_key.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;
location /wss/ {
proxy_pass http://127.0.0.1:9501/;
proxy_http_version 1.1;
proxy_set_header upgrade $http_upgrade;
proxy_set_header connection "upgrade";
proxy_set_header host $host;
proxy_set_header x-real-ip $remote_addr;
proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;
}
}
关键配置说明
所有 websocket 连接都需要通过 http/1.1 进行升级。确保包含以下指令:
proxy_http_version 1.1; proxy_set_header upgrade $http_upgrade; proxy_set_header connection "upgrade";
常见问题解决方案
ssl 协议和加密套件建议使用更安全的配置:
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;
路径斜杠问题需要注意:
location /wss/匹配以/wss/开头的 urlproxy_pass http://127.0.0.1:9501/结尾有斜杠
连接方式
客户端应使用以下格式连接:
wss://域名/wss/
调试建议
检查 nginx 错误日志定位问题:
tail -f /var/log/nginx/error.log
验证配置语法是否正确:
nginx -t
重载 nginx 配置使更改生效:
systemctl reload nginx
到此这篇关于nginx配置wss安全websocket代理的实现的文章就介绍到这了,更多相关nginx wss安全websocket代理内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论