# Nginx 支持 WSS
协议
# 背景
最近在配置一个web代理服务,除了http代理外,还需配置wss协议代理。这篇博客记录一下如何使用nginx配置wss代理。
# 配置
如何配置Nginx支持WSS
协议。
location /websocket {
proxy_pass http://backend_server; # WebSocket后端的地址
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
}
location /websocket
: 这定义了Nginx将代理的WebSocket的路径。这个路径应该与你的前端应用程序中使用的WebSocket路径匹配。
proxy_pass http://backend_server;
: 这是WebSocket后端服务器的地址,Nginx会将所有WebSocket连接请求转发到这个地址。这个设置非常关键,因为它指定了WebSocket流量的目的地。
proxy_http_version 1.1;
: 这一行确保Nginx使用HTTP/1.1协议来代理WebSocket连接。WebSocket要求使用HTTP/1.1或更高版本。
proxy_set_header Upgrade $http_upgrade;
: 这个设置告诉Nginx将Upgrade标头设置为与客户端请求中的相同值,通常是"websocket"。这是WebSocket握手的一部分。
proxy_set_header Connection "upgrade";
: 这个设置告诉Nginx将Connection标头设置为"upgrade",以确保WebSocket连接可以成功升级。
proxy_set_header Host $host;
: 这一行将请求的Host标头设置为与客户端请求中的相同值,以确保WebSocket连接的目标主机信息正确传递。
这些设置是确保Nginx正确代理WebSocket流量所必需的。确保按照需要修改location中的路径和proxy_pass中的后端服务器地址,以适应你的具体应用场景。