TP6+Swoole4 反向代理配置

Nginx反向代理配置

首先配置反向代理前已经要把以前配置过的伪静态删除掉,否则保存的时候报错php

如下是反向代理的完整配置,请注意其中的端口号[8000]当前这个端口号就是config\swoole.php文件中的server.port配置中的端口号nginx

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;
}
复制代码

须要兼容wssws协议的可按照如下方式配置,只须要更换location /{}内的配置接口一兼容数据库

 使用宝塔部署项目的直接能够复制下面的代码来替换反向代理配置location /{}位置的代码,改反向代理中的配置,别改错了;apache

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;
}
复制代码

长链接访问地址swoole

#http协议访问下使用ws协议链接socket,不须要加端口,已经被反向代理代理到8000端口
#swoole内部能够一端口兼容多协议
ws://www.test.com

#https协议访问下使用wss协议链接socket
#能够看到当前ws和wss的socket链接方式是同样的,减小了不少配置wss的问题
wss://www.test.com
复制代码

Apache反向代理配置

apache的反向代理配置代码简单,可是繁琐,须要在80端口和443的端口上分别作反向代理配置markdown

若是有更好的配置方式,还请指点socket

http.conf开启代理模块jsp

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
复制代码

配置SSLspa

若是是须要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运行模式下没法得到服务解析器类型,那就使用粗暴的办法加个数据库的系统配置让用户去选择;

相关文章
相关标签/搜索