I am trying to configure nginx as reverse proxy that does authentication and 
websockets. It proxy-passes request
to apache (/auth/wsgi) for authentication - once that succeeds, it then proxy 
passes to the websocked backend,
which is a java based websocket endpoint on tomcat 8.


location /basic/alerting/websocket {

            auth_request /auth/wsgi;


            proxy_pass http://backend.com:8080/websocket;
            proxy_http_version 1.1;
                    proxy_set_header Upgrade "Websocket";
            proxy_set_header Connection "upgrade";
            proxy_set_header Host $http_host;

        }

The authentication on apache succeeds. However, on the backend tomcat, I get 
this error:


12572237 [http-nio-8080-exec-10] ERROR 
org.springframework.web.socket.server.support.DefaultHandshakeHandler  - 
handleWebSocketVersionNotSupported() Handshake failed due to unsupported 
WebSocket version: null. Supported versions: [13]

It seems that failure is because the backend is expecting the header 
("Sec-WebSocket-Version") which is not getting passed through. I even see in 
the nginx logs:

2015/03/17 17:28:12 [debug] 20261#0: *718 http proxy header: 
"Sec-WebSocket-Version: 13"

Is there anything I need to do in the nginx config? Very much appreciate your 
help.


NOTICE: This email message is for the sole use of the intended recipient(s) and 
may contain confidential and privileged information. Any unauthorized use, 
disclosure or distribution is prohibited. If you are not the intended 
recipient, please contact the sender by reply email and destroy all copies of 
the original message.
_______________________________________________
nginx mailing list
[email protected]
http://mailman.nginx.org/mailman/listinfo/nginx

Reply via email to