gpt4 book ai didi

nginx - WebSocket 握手期间出错 : Unexpected response code: 301

转载 作者:行者123 更新时间:2023-12-03 15:51:49 25 4
gpt4 key购买 nike

我已经查看了 RoR 5.0.0 ActionCable wss WebSocket handshake: Unexpected response code: 301 的答案但它不适用于我的情况。

我使用 nginx-proxy 作为在 docker-containers 中运行的几个 Web 服务器的前端。我使用来自 https://github.com/jwilder/nginx-proxy 的 nginx-config-template

现在在我的 docker-container 中,我有另一个具有以下配置的 nginx:

map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}

upstream websocket {
server my-websocket-docker-container:8080;
}

server {
root /src/html;


location /websocket/ {
resolver 127.0.0.11 ipv6=off;
proxy_pass http://websocket;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}

location / {
# try to serve file directly, fallback to index.php
try_files $uri /index.php$is_args$args;
}

...

}

尝试连接到 时wss://example.com/websocket 我收到了上述关于意外响应代码 301 的错误。当我手动 curl websocket-url 时,我可以看到 nginx 响应告诉我“301 永久移动”。但为什么?这是从哪里来的?

有人可以帮忙吗?谢谢!

最佳答案

我今天面临类似的问题。我使用“经典”WebSocket API 和 NGINX 来测试某些服务之间的连接。我想出了以下解决方案:
WebSocket 实例创建:

const websocket = new WebSocket('ws://' + window.location.host + '/path');
Nginx 配置:
location /path {
proxy_pass http://websocket:port;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
在哪里:
  • path 是要重定向的路径
  • websocket 是主机的主机名或 IP
  • port 是应用程序在主机上提供服务的端口
  • 关于nginx - WebSocket 握手期间出错 : Unexpected response code: 301,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51802330/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com