Можно сделать ещё намного более извращенную схему с перепроксированием по петле:
upstream ws { server 10.17.17.38.5003; } upstream internal-ws { server 127.0.0.1:5001; server 127.0.0.2:5001; server 127.0.0.3:5001; } server { listen 15.15.72.198:443 ssl; proxy_connect_timeout 30s; proxy_timeout 3600s; proxy_pass internal-ws; error_log /var/log/nginx/websocket-ssl.log info; } server { listen 127.0.0.1:5001 proxy_pass ws; proxy_bind 1.1.1.1; } server { listen 127.0.0.2:5001; proxy_pass ws; proxy_bind 2.2.2.2; } server { listen 127.0.0.3:5001; proxy_pass ws; proxy_bind 3.3.3.3; } 14 октября 2015 г., 17:00 пользователь kpoxa <kp...@kpoxa.net> написал: > Добрый день. > > Спасибо за попытку помочь, к сожалению proxy_bind в варианте с stream > сервером можно использовать только один раз, т.к. в данном случае нет > location как таковых, есть только очень длинные соединения с commet > сервером, которые могут длиться днями, и это их нормальное поведение. > Конфиг простой: > stream { > upstream ws { > server 10.17.17.38:5003; > } > > server { > listen 15.15.72.198:443 ssl; > #ssl params skipped; > proxy_connect_timeout 30s; > proxy_timeout 3600s; > proxy_pass ws; > error_log /var/log/nginx/websocket-ssl.log info; > } > } > > 14 октября 2015 г., 16:43 пользователь Сергей Пузырёв <spuzi...@gmail.com> > написал: > > Можно использовать директиву proxy_bind >> http://nginx.org/ru/docs/http/ngx_http_proxy_module.html#proxy_bind и >> наваять грязный хак наподобие: >> >> split_clients $connection $downstream { >> 50% 1; >> 50% 2; >> } >> >> upstream backend { >> server A; >> server B; >> } >> >> server { >> location /bla { >> rewrite /down$downstream$request_uri; >> } >> location /down1 { >> rewrite /down1(.*)$ $1 break; >> proxy_pass http://backend; >> proxy_bind 1.1.1.1; >> } >> location /down2 { >> rewrite /down2(.*)$ $1 break; >> proxy_pass http://backend; >> proxy_bind 2.2.2.2; >> } >> } >> >> 14 октября 2015 г., 16:36 пользователь kpoxa <kp...@kpoxa.net> написал: >> >>> Проблемы с настройками ОС нет, я ж написал, уперся в лимит портов, грубо >>> говоря в 64 000 +-, а надо 200 тыс. Пробовал и с указанными вами >>> переменными играться, и, например, наличие нескольких IP из одной подсети, >>> исходящие соединяются не распределяются по IP самостоятельно, для этого >>> надо делать какие-то телодвижения в коже, коих сейчас, видимо, нет. Поэтому >>> у меня и вопрос - может быть они есть и я что-то упустил в доках? А если >>> нет, то не планируются ли? Какой-нибудь downstream { out_ip ip1; out_ip >>> ip2; } :) >>> >>> 2015-10-14 15:59 GMT+03:00 Alex Vorona <vo...@amhost.net>: >>> >>>> Похоже проблемы с настройками ОС >>>> http://nginx.org/en/docs/freebsd_tuning.html >>>> net.inet.ip.portrange.randomized=0 >>>> net.inet.ip.portrange.first=1024 >>>> net.inet.ip.portrange.last=65535 >>>> >>>> Для Linux sysctl net.ipv4.ip_local_port_range >>>> >>>> _______________________________________________ >>>> nginx-ru mailing list >>>> nginx-ru@nginx.org >>>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >>> >>> >>> >>> _______________________________________________ >>> nginx-ru mailing list >>> nginx-ru@nginx.org >>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >>> >> >> >> >> -- >> С уважением, >> Сергей Пузырёв >> тел.: +7-916-980-70-45 >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru@nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> > > > _______________________________________________ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -- С уважением, Сергей Пузырёв тел.: +7-916-980-70-45
_______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru