首先配置反向代理前已经要把之前配置过的伪静态删除掉,不然保存的时候报错以下是反向代理的完整配置,请注意其中的端口号[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协议反向代理配置
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
#...中间的配置不做解释 ProxyRequests Off ProxyPass /ws ws://127.0.0.1:8000
ProxyPassReverse /ws ws://127.0.0.1:8000
#...中间的配置不做解释 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
实际上80内和443的反向代理配置一样不过,就是要把反向代理的配置放入443的端口配置里面才能实现
这里的http反向代理配置后访问和nginx一样,但是
socket
的连接就和nginx不一样了需要在域名后加ws才能连接上,这个ws只是虚拟的目录名称,可随便更改名称
长连接访问地址
#http协议下连接socket,注意apache状态下必须在域名后增加/ws因为你的反向代理就是代理
ws://www.test.com/ws
#https协议下连接socket,连接地址和http协议下相同
wss://www.test.com/ws
如果不确定用户安装的是apache或者是nginx;但你的长连接在apache下必须加/ws,可以增加一个接口配置返回nginx或者apache,Swoole运行模式下无法获得服务解析器类型,那就使用粗暴的办法加个数据库的系统配置让用户去选择;
————————————————
版权声明:本文为CSDN博主「披星戴月的小小文」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_55606985/article/details/123759359首先配置反向代理前已经要把之前配置过的伪静态删除掉,不然保存的时候报错以下是反向代理的完整配置,请注意其中的端口号[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协议反向代理配置
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
#...中间的配置不做解释 ProxyRequests Off ProxyPass /ws ws://127.0.0.1:8000
ProxyPassReverse /ws ws://127.0.0.1:8000
#...中间的配置不做解释 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
实际上80内和443的反向代理配置一样不过,就是要把反向代理的配置放入443的端口配置里面才能实现
这里的http反向代理配置后访问和nginx一样,但是
socket
的连接就和nginx不一样了需要在域名后加ws才能连接上,这个ws只是虚拟的目录名称,可随便更改名称
长连接访问地址
#http协议下连接socket,注意apache状态下必须在域名后增加/ws因为你的反向代理就是代理
ws://www.test.com/ws
#https协议下连接socket,连接地址和http协议下相同
wss://www.test.com/ws
如果不确定用户安装的是apache或者是nginx;但你的长连接在apache下必须加/ws,可以增加一个接口配置返回nginx或者apache,Swoole运行模式下无法获得服务解析器类型,那就使用粗暴的办法加个数据库的系统配置让用户去选择;
————————————————
版权声明:本文为CSDN博主「披星戴月的小小文」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_55606985/article/details/123759359