location /ws {
proxy_ssl_verify off;
proxy_pass https://xxx/ws;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Forwarded-Proto $scheme;
}
-
location /ws {
- 这行定义了一个新的
location
块,用于匹配所有以/ws
开头的请求。
- 这行定义了一个新的
-
proxy_ssl_verify off;
- 这行关闭了代理服务器与后端服务器之间 SSL 证书的验证。这意味着即使 SSL 证书无效或过期,Nginx 仍然会允许连接到后端服务器。
-
proxy_pass https://xxx/ws/;
- 这行指定了所有匹配此
location
的请求都将被转发到指定的 URL。在这个例子中,请求会被转发到https://xxx/ws
。
- 这行指定了所有匹配此
-
proxy_http_version 1.1;
- 这行设置代理服务器使用的 HTTP 版本为 1.1。HTTP/1.1 支持持久连接,这可以提高性能。
-
proxy_set_header Upgrade $http_upgrade;
- 这行设置了
Upgrade
HTTP 头。如果原始请求中包含这个头,它将被转发到后端服务器。这在 WebSocket 和其他协议升级中很重要。
- 这行设置了
-
proxy_set_header Connection "upgrade";
- 这行设置
Connection
头为 “upgrade”,这也是处理 WebSocket 或其他需要升级现有连接的协议时必需的。
- 这行设置
-
proxy_set_header X-Forwarded-Proto $scheme;
- 这行设置了
X-Forwarded-Proto
头,它通常用于告诉后端服务器原始请求是使用 HTTP 还是 HTTPS 协议。$scheme
变量包含了原始请求的协议。
- 这行设置了
这个配置主要用于将特定路径的请求代理到另一个服务器,同时处理一些与 HTTP 升级和头部相关的特殊情况。它对于处理 WebSocket 或类似协议的请求特别有用。