Я пытаюсь отправлять запросы через websocket через два прокси-сервера nginx.Он должен выполнять SSR (рендеринг на стороне сервера)
Мой стек выглядит так: Внешний мир <-> nginx <-> rendora (SSR) <-> nginx <-> daphne <-> django
Когда я занимался внешним миром <-> nginx <-> daphne <-> django
Соединения веб-сокетов были установлены очень хорошо.Но когда я реализовал rendora (SSR) и добавил другой прокси-сервер к nginx, он не работает.Сбой соединения с веб-сокетом во время рукопожатия.Я предполагаю, что запросы "Upgrade" терпят неудачу где-то на моих серверах nginxМой nginx conf выглядит следующим образом:
server {
listen 8000;
location / {
include proxy_params;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass http://unix:/home/ubuntu/myproject/myproject.sock;
}
}
server {
server_name mydomain;
charset utf-8;
location /static {
alias /home/ubuntu/myproject/apps/web-build/static;
}
location / {
include proxy_params;
proxy_pass http://127.0.0.1:3001;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
listen 443 ssl; # managed by Certbot
...
}
Таким образом, местоположение / порт 443 отправляет все запросы из внешнего мира на 127.0.0.1:3001, где слушает rendora (сервер SSR).И сервер SSR (rendora) перенаправляет их в 127.0.0.1:8000, где прокси-сервер nginx подключается к сокету daphne unix.
Сам SSR работает хорошо, кроме запросов websocket.Но я понятия не имею, почему обновление websocket не выполняется, когда запросы проходят через два прокси-сервера nginx.