不是專門做伺服器營運的,所以對於玩伺服器反向 Proxy等活,基本上都是現場google,比如對apache設定反向 Proxy,一般是如下做
將httpd.conf中帶proxy的模組解除注釋(搞不懂每個模組的作用的話,就全部解除吧),如:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
接下來幾種方法隨便怎麼用都是生效的,這是現從網上拷貝的,具體自己改
方法一:
<VirtualHost *:80>ServerAdmin xxx@yourdomain.comServerName www.yourdomain.comDocumentRoot /srv/www/htdocsServerSignature OnDirectoryIndex index.php index.html index.htmProxyRequests OffProxyPreserveHost OnProxyPass / http://your.internalserver.local:8080/ProxyPassReverse / http://your.internalserver.local:8080/</virtualhost>
方法二:
ProxyPass /Test http://127.0.0.1:8080/ProxyPassReverse /Test http://127.0.0.1:8080<proxy http://127.0.0.1:8080> AllowOverride None Order Deny,Allow Allow from all</proxy>
其中方法一有時候還可以做到單獨的虛擬路徑檔案裡面去,方便集中管理,這點各種伺服器的做法是一樣的,include進來即可
但是這一次我發布到centos6上的時候卻一直報類似如下的錯誤:
[Wed Dec 10 20:30:51 2012] [error] proxy: HTTP: disabled connection for (127.0.0.1)
而我在其它linux平台下測試都是不會出現這種情況的,如archlinux,原因就不深究了,還是centos改了一個配置而已,我們把它改回來吧
sudo /usr/sbin/setsebool -P httpd_can_network_connect 1
重啟httpd,測試,成功