Websocket proxy

António P. P. Almeida appa at perusio.net
Thu May 9 18:19:32 UTC 2013


At the http level:

map $http_upgrade $connection_upgrade {
    default upgrade;
    ''      close;
}

map $connection_upgrade $proxy_upstream_port {
    upgrade 81;
    close 80;
}

Then at the location do:

 location / {
     proxy_http_version 1.1;
     proxy_set_header Upgrade $http_upgrade;
     proxy_set_header Connection $connection_upgrade;
     proxy_pass http://localhost:$proxy_upstream_port;
 }

Partly taken from http://nginx.org/en/docs/http/websocket.html.

----appa



On Thu, May 9, 2013 at 12:35 AM, Alder Network <aldernetwork at gmail.com>wrote:

> This must have been discussed before but I am new to nginx
> and this forum.
>
> I am upgrading to 1.4 to use its websocket proxy feature.
> Say I have a websocket server running at port 81, so I want
> to forward all websocket packets to port 81, and process
> the rest at port 80.
>
> Somehow the following conf doesn't work, anything missing?
>
>    server {
>         listen        [::]:80 ipv6only=off;
>
>         location / {
>             regular_http_processing_directive;
>
>             if ($http_upgrade = "websocket") {
>                 proxy_pass http://localhost:81;
>             }
>
>             proxy_http_version 1.1;
>             proxy_set_header Upgrade websocket;
>             proxy_set_header Connection upgrade;
>         }
>   }
>
> - Alder
>
> _______________________________________________
> nginx mailing list
> nginx at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx/attachments/20130509/746d74a4/attachment.html>


More information about the nginx mailing list