Задать вопрос
@KeyDel

Как настроить связку Nginx-Tornado-Websocket?

Помогите настроить связку Nginx-Tornado-Websocket.
Через Nginx получается загрузить только статику, переключения на Websocket нет.

Автономно (без Nginx) приложение Tornado нормально работает на 9001 порту, по таким настройкам.
define("port", default=9001)

Хендлеры:
handlers = [
	(r"/", MainHandler),
	(r"/botsocket", BotSocketHandler),
]

Переключение на Websocket (js):
var url = "ws://IP_сервера/botsocket";

Настройки Nginx (все закомментированные директивы, это мои тщетные попытки подобрать рабочую конфигурацию):
worker_processes 2;

#user                    root;
user                    nginx;

events {
    worker_connections  1024;
}

http {
    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;
	
    upstream websocket {
        server IP_сервера:9001;
        #server 127.0.0.1:9001;  
    }

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

    keepalive_timeout 86400;
    proxy_connect_timeout 86400;
    proxy_send_timeout 86400;
    proxy_read_timeout 86400;

    server {
        listen 80;

        location ^~ /static/ {
            root /var/www/python/test/;
            if ($query_string) {
                expires max;
            }
        }

         # WebSocket.
        location /botsocket {
            proxy_http_version 1.1;
            #proxy_set_header Connection "upgrade";
            proxy_set_header Connection $connection_upgrade;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://websocket;
            #proxy_pass http://websocket/botsocket;
            #proxy_pass http://IP_сервера:9001/botsocket;
            #proxy_pass http://127.0.0.1:9001/botsocket;
        }

         location / {
            proxy_pass_header Server;
            proxy_set_header Host $http_host;
            proxy_redirect off;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Scheme $scheme;
            proxy_pass http://127.0.0.1:9001/;
        }
    }
}


В текущей конфигурации Nginx, в ответ на запрос, на переключение на Websocket, получаю 403 ошибку.
Замена пользователя в конфигурации Nginx, с nginx на root, также ничего не меняет.

Помогите советом, уже вторые сутки бесплодно копаюсь в гугле по чужим конфигам, которые у меня никак не работают.

5ca98e3ec61e3919206240.jpeg
  • Вопрос задан
  • 292 просмотра
Подписаться 2 Средний Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы