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運行模式下沒法得到服務解析器類型,那就使用粗暴的辦法加個數據庫的系統配置讓用戶去選擇;

相關文章
相關標籤/搜索