nginx WebSocket Proxy
As of version 1.4, nginx is capable of forwarding WebSocket requests, so it can be used as a reverse proxy for HTTP, HTTPS, WS and WSS.
Here are some simple example configuration snippets for WebSocket forwarding in nginx.
Requirements
- nginx 1.4.x or higher
- WebSocket and HTTP server running on
ws|http://localhost:8080
This is a typical scenario given by Engine.IO, Socket.IO, Primus, etc. which provide a WebSocket server with HTTP fallback.
Example Configs
- Simple WebSocket Proxy โ forwards WS and HTTP requests to
ws|http://localhost:8080
- WebSocketSecure Proxy โ forwards WSS and HTTPS requests to
ws|http://localhost:8080
- WebSocket Proxy with Path Rewriting โ forwards
wss|https://ws.example.com/services/myservice
tows|http://localhost:8080
- WebSocket Proxy with Load Balancing โ like previous example, but with three backend servers, with one client always being forwarded to the same backend
See Also
- http://nginx.org/en/docs/http/websocket.html
- Nginx Server Configs โย Great resource for nginx server config documentation
Author
Nico Kaiser