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

效果如下:
这里写图片描述

猜你喜欢

转载自blog.csdn.net/Abbotton/article/details/81352104
今日推荐