关于swoole:TP6Swoole4-反向代理配置

12次阅读

共计 2604 个字符,预计需要花费 7 分钟才能阅读完成。

Nginx 反向代理配置
首先配置反向代理前曾经要把之前配置过的伪动态删除掉, 不然保留的时候报错
以下是反向代理的残缺配置, 请留神其中的端口号 [8000] 以后这个端口号就是 config\swoole.php 文件中的 server.port 配置中的端口号
location ~* .(php|jsp|cgi|asp|aspx)${

proxy_pass http://127.0.0.1:8000;    
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_set_header REMOTE-HOST $remote_addr;

}
location /
{

proxy_pass http://127.0.0.1:8000;    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_set_header REMOTE-HOST $remote_addr;

add_header X-Cache $upstream_cache_status;

#Set Nginx Cache

    add_header Cache-Control no-cache;
expires 12h;

}复制代码
须要兼容 wss 和 ws 协定的可依照以下形式配置, 只须要更换 location /{}内的配置接口一兼容
 应用宝塔部署我的项目的间接能够复制上面的代码来替换反向代理配置中 location /{} 地位的代码, 改反向代理中的配置, 别改错了;
location /{

proxy_pass http://127.0.0.1:8000;    
proxy_http_version 1.1;    
proxy_read_timeout 360s;       
proxy_redirect off;     
proxy_set_header Upgrade $http_upgrade;   
proxy_set_header Connection "upgrade";    
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_set_header REMOTE-HOST $remote_addr;        
add_header X-Cache $upstream_cache_status;        
#Set Nginx Cache           
    add_header Cache-Control no-cache;    
expires 12h;

}复制代码
长连贯拜访地址

http 协定拜访下应用 ws 协定连贯 socket, 不须要加端口, 曾经被反向代理代理到 8000 端口

swoole 外部能够一端口兼容多协定

ws://www.test.com

https 协定拜访下应用 wss 协定连贯 socket

能够看到以后 ws 和 wss 的 socket 连贯形式是一样的, 缩小了很多配置 wss 的问题

wss://www.test.com 复制代码
Apache 反向代理配置
apache 的反向代理配置代码简略, 然而繁琐, 须要在 80 端口和 443 的端口上别离做反向代理配置
如果有更好的配置形式, 还请指导
http.conf 开启代理模块
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so 复制代码
配置 SSL
如果是须要 HTTPS 拜访, 那就必须的做此配置, 不然 wss 也是无奈应用的
Http 协定反向代理配置
<VirtualHost *:80>

… 两头的配置不做解释

ProxyRequests Off
ProxyPass /ws ws://127.0.0.1:8000
ProxyPassReverse /ws ws://127.0.0.1:8000 ProxyPass / http://127.0.0.1:8000
ProxyPassReverse / http://127.0.0.1:8000

</VirtualHost>

<VirtualHost *:443>

… 两头的配置不做解释 ProxyRequests Off

ProxyPass /ws ws://127.0.0.1:8000
ProxyPassReverse /ws ws://127.0.0.1:8000

ProxyPass / http://127.0.0.1:8000
ProxyPassReverse / http://127.0.0.1:8000</VirtualHost> 复制代码
实际上 80 内和 443 的反向代理配置一样不过, 就是要把反向代理的配置放入 443 的端口配置外面能力实现
这里的 http 反向代理配置后拜访和 nginx 一样, 然而
socket
的连贯就和 nginx 不一样了须要在域名后加 ws 能力连贯上, 这个 ws 只是虚构的目录名称, 可轻易更改名称
长连贯拜访地址

http 协定下连贯 socket, 留神 apache 状态下必须在域名后减少 /ws 因为你的反向代理就是代理到了虚拟目录 ws 下

ws://www.test.com/ws

https 协定下连贯 socket, 连贯地址和 http 协定下雷同

wss://www.test.com/ws 复制代码
如果不确定用户装置的是 apache 或者是 nginx; 但你的长连贯在 apache 下必须加 /ws, 能够减少一个接口配置返回 nginx 或者 apache,Swoole 运行模式下无奈取得服务解析器类型, 那就应用粗犷的方法加个数据库的系统配置让用户去抉择;
如果你感觉这篇文章对你有点用的话,麻烦请给咱们的开源我的项目点点 star: http://github.crmeb.net/u/defu 不胜感激!

正文完
 0