要配置 Nginx 支持 WebSocket (包括非加密的 ws://
连接和加密的 wss://
连接),你需要在 location
块中添加一些特定的指令。这些指令告诉 Nginx 如何将 WebSocket 连接代理到你的应用服务器。以下是一个基本的示例:
server {
listen 80;
server_name your_domain.com;
location /ws/ {
proxy_pass http://your_application_server;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $host;
}
}
在这个示例中,所有到 /ws/
的请求都会被视为 WebSocket 连接,并被代理到 your_application_server
。proxy_set_header
指令用于设置 HTTP 头部,$http_upgrade
和 "Upgrade"
用于升级连接到 WebSocket。
对于 wss://
连接,你还需要启用 SSL:
server {
listen 443 ssl;
server_name your_domain.com;
ssl_certificate /etc/nginx/ssl/your_domain.com.crt;
ssl_certificate_key /etc/nginx/ssl/your_domain.com.key;
location /ws/ {
proxy_pass http://your_application_server;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $host;
}
}
在这个示例中,你需要将 ssl_certificate
和 ssl_certificate_key
指令的值替换为你的 SSL 证书和私钥的路径。
请注意,以上配置是基本的 WebSocket 支持。根据你的具体需求,你可能需要添加更多的配置,例如用于负载均衡、缓存、限流或其他功能的配置。