您的位置:首页 > 理论基础 > 计算机网络

【配置】SwooleDistributed 3.X框架中利用Nginx对HTTP、Websocket协议进行反向代理

2018-08-02 09:03 441 查看
版权声明: https://blog.csdn.net/Abbotton/article/details/81352104

前言

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在线测试工具,点此打开

效果如下:

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: