Hello! On Thu, Jul 04, 2013 at 03:10:13AM -0400, Kibets Alexander wrote:
> Необходимо сделать проксирование WEB-Socket соединения > ВЕБ-часть открывает 2-ва WEB-Socket соединения на > http://mysite.com/ws_cmd > http://mysite.com/ws_data > по 80-му порту > > Они должны пробрасоватся на http://mysite.com:8000 > > http > { > .... > > server > { > listen ***.***.***.***:80; > > # Отдаем статику > location ^~ /gmap2/ > { > root /home/www/sites/nodejs/data/; > } > > # WEB-Socket > > location / > { > # Извлекаем номер порта > rewrite ^/ws_cmd(/*/) /ws_cmd break; > rewrite ^/ws_data(/*/) /ws_data break; > > set $port_num $1; > # set $port_num 8000; так тоже не работает > # set $port_num "8000"; так тоже не работает > > так работает > proxy_pass http://mysite.com:8000; > а так !!! НЕ РАБОТАЕТ !!! > #proxy_pass http://mysite.com:$port_num; > > proxy_http_version 1.1; > proxy_set_header Upgrade $http_upgrade; > proxy_set_header Connection "upgrade"; > proxy_buffering off; > } > > } > > } > > Я хочу в URL-е указывать номер порта на который должен пробрасоватся запрос > (для распределения нагрузки). > Помогите пожалуйста! В чём заключается "не работает"? Использование переменных в proxy_pass, помимо прочего, приводит к тому, что nginx начинает пытаться в resolve'ить имя mysite.com, и скорее всего в логах при вышеприведённом конфиге будет ругань про то, что нужно указать resolver. Подробнее тут: http://nginx.org/r/proxy_pass/ru http://nginx.org/r/resolver/ru А вообще - для распределения нагрузки лучше описать блок upstream, подробнее тут: http://nginx.org/r/upstream/ru -- Maxim Dounin http://nginx.org/en/donation.html _______________________________________________ nginx-ru mailing list [email protected] http://mailman.nginx.org/mailman/listinfo/nginx-ru
