Apache配置中的ProxyPass 和 ProxyPassReverse


apache中的mod_proxy模塊用於url的轉發,即具有代理的功能。應用此功能,可以很方便的實現同tomcat等應用服務器的整合,甚者可以很方便的實現web集群的功能。 例如使用apache作為域名www.test.com代理服務器,讓其暴露在公網上,即DNS解析到本機器上,真正提供web服務器的是另一台位於同一內網的機器上,假設起IP是192.168.100.22,那么只需要如下配置就可以了。 ProxyPass / http://192.168.100.22/ ProxyPassReverse / http://192.168.100.22/

ProxyPass 很好理解,就是把所有來自客戶端對http://www.test.com的請求轉發給http://192.168.100.22上進行處 理, ProxyPassReverse 的配置總是和ProxyPass 一致,它的作用在於反向代理,如果響應中有302重定向,ProxyPassReverse就派上用場。

舉例說明,假設用戶訪問http://www.test.com/exam.php,通過轉發交給http://192.168.100.22 /exam.php處理,假定exam.php處理的結果是實現redirect到login.php(使用相對路徑,即省略了域名信息),如果沒有配置 反向代理,客戶端收到的請求響應是重定向操作,並且重定向目的url為http://192.168.100.22/login.php ,而這個地址只是代理服務器能訪問到的,可想而知,客戶端肯定是打不開的,反之如果配置了反向代理,則會在轉交HTTP重定向應答到客戶端之前調整它為 http://www.test.com/login.php,即是在原請求之后追加上了redirect的路徑。當客戶端再次請求http: //www.test.com/login.php,代理服務器再次工作把其轉發到http://192.168.100.22/login.php。 客戶端到服務器稱之為正向代理,那服務器到客戶端就叫反向代理 httpd.conf 的修改例子, 可以放到VirtualHost節點配置里面

ProxyPass /test http://192.168.1.2:8080/test
ProxyPassReverse /test http://192.168.1.2:8080/test

    AllowOverride None
    Order Deny,Allow
    Allow from all


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM