Re: WebSocket проксирование

Ruslan Ermilov ru at nginx.com
Mon Mar 11 09:14:46 UTC 2013


On Mon, Mar 11, 2013 at 03:10:24AM -0400, Modigar wrote:
> Необходимо спроксировать вебсокет через nginx по следующей схеме:
> Клиент -> HTTPS (WSS) -> nginx -> Local Server (WS).
> Т.е. если описать словами, то необходимо авторизироваться по SSL (в т.ч. и
> вебсокету) на nginx, а последний в свою очередь должен спроксировать
> вебсокет клиента на локальный вебсокет сервер без SSL.
> вопросы: 
> 1. Возможно ли такое?

Да, почему нет.

> 2. Как это сделать?

Настроить HTTPS:
http://nginx.org/ru/docs/http/configuring_https_servers.html

Настроить проксирование WebSocket:
http://nginx.org/ru/docs/http/websocket.html

> 3. Если не возможно, то как быть с сертификатом для локального вебсокет
> сервера?
> 4. Как реализовать это в рамках одной машины (nginx, локальный вебсокет
> сервер и клиент на одной машине стоят), и при этом убедиться, что nginx
> проксирует?

http {
    server {
        listen 8000 ssl;

        ssl_certificate cert.pem;
        ssl_certificate_key cert.key;

        location = /test {
                proxy_pass http://echo.websocket.org/;
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";
        }
    }
}

http://www.websocket.org/echo.html

Введите там адрес вашего настроенного сервера.  Я с вышеприведенной
конфигурацией тестировал так: wss://127.0.0.1:8000/test.



Подробная информация о списке рассылки nginx-ru