Proxying websocket (to e.g. tomcat)

Nikolai Zhubr n-a-zhubr at yandex.ru
Thu Feb 21 22:12:57 UTC 2013


21.02.2013 20:03, Valentin V. Bartenev wrote:
[...]
>> Apparently such configuration implies that different kinds of
>> connections (standard and websocket) can not be mixed in one "location"
>> section? (As far as I understood it, magic headers do not get through
>> directly, but essentially get reintroduced by these configuration
>> settings?)
>>
>
> Not quite so. Actually, they can be mixed. That's why the $http_upgrade variable
> used. If there's no such header in request, then the variable is empty and the
> header won't be set.

You are right. Now I see. I've even actually made some tests to be 
completely sure and they all worked correctly.

Thank you for precise explanation and usefull examples!

Nikolai

>
> You can also set the Connection header to different values depending on
> existence of the Upagrade header in a request.
>
> Example:
>
>    http {
>        map $http_upgrade $conn_header {
>            default        upgrade;
>            ''             close;
>        }
>
>        server {
>            ...
>
>            location {
>                proxy_pass  http://127.0.0.1:8080;
>                proxy_http_version 1.1;
>                proxy_set_header Upgrade $http_upgrade;
>                proxy_set_header Connection $conn_header;
>            }
>        }
>
> http://nginx.org/r/map
>
>
>    wbr, Valentin V. Bartenev
>
> --
> http://nginx.com/support.html
> http://nginx.org/en/donation.html
>
> _______________________________________________
> nginx mailing list
> nginx at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx
>
>



More information about the nginx mailing list