После очередной настройки проксирования websocket сервера, меня все больше
удивляет, почему в Nginx нет модуля websocket, c директивами websocket_*?

Модуль нужен не только для красоты конфига, он может хранить под капотом
оптимальные дефолт настройки и кучу проверок на отсеивания заведомо
инвалидных запросов с точки зрения протокола websocket, и развиваться модуль
мог бы так же активно как и сам протокол.

Сейчас мой упрощенный конфиг для проксирования websocket сервера, выглядит
так:
        location /
        {
                if ($http_upgrade !~* ^websocket$)
                {
                        add_header Upgrade websocket always;
                        
                        return 426;
                }
                
                proxy_pass http://ws_upstream;
                proxy_http_version 1.1;
                proxy_read_timeout 300s;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";
        }

Но по сути он должен выглядеть как-то так:
        location /
        {               
                websocket_pass http://upstream;
        }

Или так:
        location /
        {               
                proxy_pass ws://upstream;
        }

Что скажете?

Posted at Nginx Forum: 
http://forum.nginx.org/read.php?21,260715,260715#msg-260715

_______________________________________________
nginx-ru mailing list
[email protected]
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Ответить