A. 怎麼配置反向代理 apache
雙擊安裝剛下載的Apache HTTP Server安裝文件,按照安裝向導安裝完成後,軟體會自動運行,如果埠不被佔用,會啟動成功,例如,在瀏覽器輸入http://localhost或者http://localhost:8080,回車。如果出現ItWorks!字樣,說明已經安裝成功了。
要配置反向代理,
首先,找到我們剛才安裝的Apache HTTP Server根目錄,
進入conf,找到httpd.conf配置文件,在大概110行,
LoadMoleproxy_mole moles/mod_proxy.so
LoadMoleproxy_ajp_molemoles/mod_proxy_ajp.so
LoadMoleproxy_balancer_molemoles/mod_proxy_balancer.so
LoadMoleproxy_connect_molemoles/mod_proxy_connect.so
LoadMoleproxy_ftp_molemoles/mod_proxy_ftp.so
LoadMoleproxy_http_molemoles/mod_proxy_http.so
將這些注釋打開,即去掉前面的#;
然後,還是在這個文件的471行,
Include conf/extra/httpd-vhosts.conf
將注釋打開;
打開,修改裡面的配置;
NameVirtualHost *:80[A1]
<VirtualHost *:80>[A2]
ServerAdmin [email protected]
DocumentRoot "d:/www/test"
ServerName test.orientsec.com
ServerAlias test.orientsec.com
ErrorLog "logs/test-error.log"
CustomLog "logs/test-access.log"common
ProxyPass /images/ !
ProxyPass/js/ !
ProxyPass/css/ !
ProxyPass/wiki http://hdwiki.orientsec.com/wiki.html max=20 ttl=120 retry=300
ProxyPassReverse/wiki http://hdwiki.orientsec.com/wiki.html
</VirtualHost>
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "d:/www/hdwiki"
ServerName hdwiki.orientsec.com
ServerAlias hdwiki.orientsec.com
ErrorLog "logs/hdwiki-error.log"
CustomLog "logs/hdwiki-access.log"common
</VirtualHost>
找到conf/httpd.conf裡面的< Directory>標簽修改許可權配置,否則會一直拒絕訪問,需要登錄驗證。
Allow from none
改為:
Allow from all
最後,重啟Apache HTTP Server;
負載均衡
ProxyPass / balancer://orientsec.com.cn/
ProxyPassReverse/ balancer://orientsec.com.cn /
<Proxy balancer://orientsec.com.cn/>
BalancerMember http://localhost:8085/
BalancerMemberhttp://localhost:8086/
</Proxy>
B. apache配置反向代理的問題,求大神指點!
在IIS7之前,在windows上要實現該功能卻不是一件容易的事情,但是在IIS7上,通過Application Request Routing模塊,我們可以輕松實現反向代理
在配置web伺服器的時候,我們經常遇到這樣的問題,由於某些原因,該伺服器只能擁有一個公網IP,但是可能需要提供其他機器或者本機上其他 webserver的伺服器給訪問者,同時又不希望使用其他埠,如果在linux下,常見的解決方案是使用nginx作為前端server,通過反向代 理間接訪問其他webserver.在IIS7之前,在windows上要實現該功能卻不是一件容易的事情,但是在IIS7上,通過 Application Request Routing模塊,我們可以輕松實現反向代理.
本次測試配置的情況,簡單起見,只在 iis中測試,配置3個網站,第一個」LevenWeb」,使用80埠提供服務,第二個」levenblog」,下面運行著 levenblog2.0.9,使用8080埠,第三個」phpweb」,下面有一個」test.php」的phpinfo頁面(iis7 php配置本文不再詳述),本機ip:192.168.1.8,為了測試,我們先進行域名綁定,也就是在leven.com.cn下新增3個子域名,域名 綁定如下圖所示:
我們的目標如下:
http://phpweb.leven.com.cn/ 訪問phpweb站點,也就是http://localhost:8081/
http://levenblog.leven.com.cn/ 訪問levenblog站點,也就是http://localhost:8080/
http://realblog.leven.com.cn/ 訪問公網上的levenblog站點,也就是http://leven.com.cn/
http://localhost/leven 訪問levenblog站點,也就是http://leven.com.cn/
首先前往http://www.iis.net/extensions/ApplicationRequestRouting下載Application Request Routing,然後安裝,本次實踐使用的是V2版.
安裝完畢之後,新建3個站點:
然後找到ARR配置菜單:
開啟Proxy項:
然後在levenweb站點下配置反向代理路由,配置可以使用UI界面或者直接修改web.config的模式,本次配置給出ui和config文件兩種方式,個人更喜歡config配置文件模式.
進入該項,先配置第一項, http://phpweb.leven.com.cn/ 訪問phpweb站點,也就是http://localhost:8081/,選擇」Add Rules...」:
然後選擇」Blank Rule」
然後填寫如下:
圖片看不清楚?請點擊這里查看原圖(大圖)。
該參數設置表面ARR將攔截所有請求
繼續在」Conditions」中選擇」Add」:
該設置表面只有HTTP_HOST為phpweb.leven.com.cn的URL才能通過該規則,如果您綁定了多個域名,可以根據多次增加或者通過正則表達式的|來間隔
最後在下面的Action中配置代理路徑:
圖片看不清楚?請點擊這里查看原圖(大圖)。
在這兒,{R:1}代表了MatchUrl中的第一個匹配括弧
同樣配置的web.config文件如下:
復制代碼 代碼如下:
測試訪問http://phpweb.leven.com.cn/test.php,結果如下:
下面同樣可以配置levenblog.leven.com.cn和realblog.leven.com.cn
Ui界面配置不再說明,配置完成的web.config如下:
復制代碼 代碼如下:
訪問結果分別為:
和
我們再添加最後一項,將http://localhost/leven 代理到 http://leven.com.cn/
復制代碼 代碼如下:
但是此時訪問會出現問題,如下圖:
顯然,出現了css丟失等情況,通過查看源碼:
可以看到css的路徑有誤,不僅如此,所有的img,a標簽路徑全部出現了錯誤,代理之後的地址是/leven/xxx的,但是源地址仍然是/xxx,因此我們還需要增加一個Outbound Rule
配置好的config文件如下:
復制代碼 代碼如下:
然後刷新:
可見路徑正確.
在使用了反向代理之後,編程上也有些地方需要注意了,在取客戶端IP的時候,由於多了一層代理,直接是無法獲取的,因此,我們需要開啟
然後通過獲取Header中的X-Forworded-For欄位來取得客戶端IP
從測試來看,ARR是個非常有用的代理模塊,能完全滿足我們反向代理的需求,不僅如此,ARR還提供了UrlRewrite,ServerFarms,Cache等很多功能,很是值得我們挖掘.
來源: 博客園 作者:Leven