默认情况下,当使用 nginx 作为反向代理升级 WebSocket 时,它不会自动传递 Host 请求头给后端服务器。这是因为 WebSocket 连接的升级请求与普通的 HTTP 请求有所不同。\n\n在 WebSocket 升级请求中,使用了特定的 HTTP 头字段,如 Upgrade 和 Connection。这些头字段用于指示将 HTTP 连接升级为 WebSocket 连接,并且不需要传递 Host 头字段。\n\n因此,默认情况下,nginx 不会传递 Host 请求头给后端服务器。如果您需要在后端服务器中使用 Host 头字段,您可以使用 nginx 的 proxy_set_header 指令来显式地传递 Host 头字段,如下所示:\n\n\nlocation /websocket {\n proxy_pass http://backend;\n proxy_http_version 1.1;\n proxy_set_header Upgrade $http_upgrade;\n proxy_set_header Connection "upgrade";\n proxy_set_header Host $host;\n}\n\n\n在上面的示例中,proxy_set_header 指令用于将 Host 头字段传递给后端服务器。


原文地址: https://www.cveoy.top/t/topic/p65R 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录