<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">29 июля 2015 г., 0:34 пользователь Budulianin <span dir="ltr"><<a href="mailto:nginx-forum@nginx.us" target="_blank">nginx-forum@nginx.us</a>></span> написал:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">>В ответ клиенту добавить?<br>
Добавить в запрос, который перенаправится какой-то ноде, после того, как она<br>
будет выбрана в upstream.<br>
Т.е. upstream уже выбран, мы его только теперь знаем(адрес ноды) и тогда мы<br>
добавляем его в header и он отправляется в ноду.<br>
<br>
Если ставить proxy_set_header рядом с proxy_pass, то заголовок не<br>
добавляется, я так понимаю, что переменная ещё пустая, поэтому<br>
заголовок не ставится. Но где уже известна эта переменная? Только в блоке<br>
upstream? Но там нельзя устанавливать заголовок.<br></blockquote><div><br>Она известна уже после получения конечного ответа от бэкендов.<br>А разве ноды бэкенда сами свои адреса не знают? Зачем им этот заголовок посылать?<br> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
map $http_upgrade $connection_upgrade {<br>
    default upgrade;<br>
    '' close;<br>
}<br>
<br>
upstream tornado {<br>
    hash $arg_key;<br>
<br>
    server <a href="http://127.0.0.1:9995" rel="noreferrer" target="_blank">127.0.0.1:9995</a>;<br>
    server <a href="http://127.0.0.1:9996" rel="noreferrer" target="_blank">127.0.0.1:9996</a>;<br>
    server <a href="http://127.0.0.1:9997" rel="noreferrer" target="_blank">127.0.0.1:9997</a>;<br>
    server <a href="http://127.0.0.1:9998" rel="noreferrer" target="_blank">127.0.0.1:9998</a>;<br>
    server <a href="http://127.0.0.1:9999" rel="noreferrer" target="_blank">127.0.0.1:9999</a>;<br>
<br>
}<br>
<br>
<br>
server {<br>
    listen 8080 default_server;<br>
<br>
    access_log /var/log/nginx/prototypes-nginx-access.log;<br>
    error_log /var/log/nginx/prototypes-nginx-error.log;<br>
<br>
    location /ws/ {<br>
        proxy_pass <a href="http://tornado" rel="noreferrer" target="_blank">http://tornado</a>;<br>
        proxy_set_header Test-Header1 123;<br>
        proxy_set_header Test-Header2 $upstream_addr;<br>
        proxy_set_header Test-Header3 $host;<br>
        proxy_http_version 1.1;<br>
        proxy_set_header Upgrade $http_upgrade;<br>
        proxy_set_header Connection $connection_upgrade;<br>
    }<br>
<br>
}<br>
<br>
Posted at Nginx Forum: <a href="http://forum.nginx.org/read.php?21,260596,260601#msg-260601" rel="noreferrer" target="_blank">http://forum.nginx.org/read.php?21,260596,260601#msg-260601</a><br>
<div class="HOEnZb"><div class="h5"><br>
_______________________________________________<br>
nginx-ru mailing list<br>
<a href="mailto:nginx-ru@nginx.org">nginx-ru@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx-ru" rel="noreferrer" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx-ru</a></div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">Alexey Malov</div>
</div></div>