1. 程式人生 > >【配置】SwooleDistributed 3.X框架中利用Nginx對HTTP、Websocket協議進行反向代理

【配置】SwooleDistributed 3.X框架中利用Nginx對HTTP、Websocket協議進行反向代理

前言

SwooleDistributed 3.X可以同時支援HTTP、Websocket和TCP協議,在配置防火牆規則的情況下可以通過IP:PORT 的方式進行HTTP和Websocket的訪問,但是這樣在生產環境中是不安全的,而且相對來說IP:PORT 的訪問方式並不友好,所以就要用到nginx的反向代理了,將80埠的請求反向代理到SwooleDistributed框架監聽的埠。

具體配置

現在假設伺服器上已經安裝了nginx以及SwooleDistributed框架。核心的nginx配置如下:

....
# HTTP請求轉發到SwooleDistributed監聽的9092埠
location /{
    proxy_set
_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-NginX-Proxy true; proxy_pass http://127.0.0.1:9092/; break; } # Websocket請求轉發到SwooleDistributed監聽的9093埠 location /ws{ proxy_pass http://127.0
.0.1:9093; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # WebSocket 支援的核心配置 proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $http_connection; # WebSocket超時設定(可選)
proxy_connect_timeout 7d; proxy_send_timeout 7d; proxy_read_timeout 7d; proxy_redirect off; break; } ....

測試結果

我們可以通過瀏覽器的console 命令列進行測試,也可以使用線上的Websocket測試工具進行測試,這裡推薦使用EasySwoole 出品的Websocket線上測試工具,點此開啟

效果如下:
這裡寫圖片描述

相關推薦

no