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