随着HTML5大大简化了websocket的开发,websocket的使用越来越广泛,毕竟它在实时交互场景下较http有很大的优势。websocket的协议为ws或wss,使用nginx能很方便的反向代理。
下面是一个典型的配置。原本这个站点只是支持将xxx.lefer.cn
转发给http://127.0.0.1:7017
处理。但在增加了11行,12行,13行后,就一并对websocket进行了转发。整个配置很简单,这得益于HTTP 中的 Upgrade 协议头将连接从HTTP升级到WebSocket,使得http和websocket的信息得以复用。
server { listen 80; server_name xxx.lefer.cn; ssl on; ... location / { proxy_pass http://127.0.0.1:7017; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; }
|
可参考nginx官方文档