Назад | Перейти на главную страницу

HTTP подключить туннель к прокси-серверу перед сервером веб-сокетов?

Мне сложно с этим. У нас есть сервер websocket, который прослушивает порт 80 по адресу myserver.com/wsDemo?ID=12. Нам нужно протестировать клиентскую программу, подключив ее к этому серверу через прокси. Я пробую nginx 1.2.7 в качестве прокси на порту 8080, работающем на прокси-сервере. Мы хотим, чтобы клиент подключился к прокси-серверу с помощью метода http-подключения, а затем прокси-сервер создал туннель к серверу приложений myserver.com/wsDemo?ID=12 websocket. Вот моя конфигурация nginx:

http {
include       /etc/nginx/mime.types;
default_type  application/octet-stream;

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                  '$status $body_bytes_sent "$http_referer" '
                  '"$http_user_agent" "$http_x_forwarded_for"';

access_log  /var/log/nginx/access.log  main;

sendfile        on;
#tcp_nopush     on;

#keepalive_timeout  0;
keepalive_timeout  65;

gzip  on;
server{
    listen  8080;
    listen  80;

    location /wsDemo?ID=12 {
            proxy_pass http://myserver.com:80/wsDemo?ID=12;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
    }
}

# Load config files from the /etc/nginx/conf.d directory
# The default server is in conf.d/default.conf
include /etc/nginx/conf.d/*.conf;

}

Я был бы рад использовать для этого любой прокси, если у кого-то есть другой инструмент, который они порекомендовали бы (пожалуйста, добавьте пример конфигурации, возможно)

nginx в настоящее время изначально не поддерживает протокол WebSocket. Первая поддерживающая его версия - 1.3.13 с 20 февраля (источник: nginx.org).

Пока он не достигнет статуса готовности к производству, вы можете попробовать nginx_tcp_proxy_module из Яовейбина для прокси-соединения WebSocket как простого TCP.