Я уже изучил ответ на RoR 5.0.0 ActionCable wss WebSocket рукопожатие: неожиданный код ответа: 301, но это не применимо к моему случаю.
Я использую nginx-proxy в качестве прикрытия для нескольких веб-серверов, работающих в docker-контейнерах. Я использую шаблон nginx-config из https://github.com/jwilder/nginx-proxy
Теперь в моем docker-контейнере есть еще один 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. Когда я вручную скручиваю URL-адрес websocket, я вижу ответ nginx, говорящий мне: «301 перемещен постоянно ". Но почему? Откуда это взялось?
Кто-нибудь может помочь? Спасибо!
location /websocket/
имеет завершающий/
, но вы подключаетесь к/websocket
без завершающего/
. Изменение любого из них может удалить перенаправление. - person Richard Smith   schedule 12.08.2018