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 不胜感激 !