標籤:linux 下apache反向 Proxy tomcat apache反向 Proxy
一、實驗說明
Apache HTTP server 和 Tomcat server 整合,一般是希望對於使用者只公布 Apache HTTP server 的網址,而 Tomcat 的網址則不公布,扮演一個幕後英雄的角色。訪問 Tomcat 的 HTTP 請求,通過 Apache 轉寄給 Tomcat,Tomcat 處理完後,將 HTTP 回應返回給 Apache,然後 Apache HTTP 回應發回給使用者端瀏覽器。
Apache HTTP server和 Tomcat server 直接的 HTTP 資料轉送,有很多種方法。
方法一,使用 mod_jk。很多網站上介紹到 Apache HTTP server 和 Tomcat server 整合的時候,都是在介紹 mod_jk.so 的使用,這是一種比較老的方法,並且需要額外下載 mod_jk。Apache 和 Tomcat 的預設設定檔都需要改動。
方法二, URL rewrite,也就是對於指定格式的 URL,轉寄給某個 Tomcat 的網址。這裡所說的指定格式,是指 Apache 所使用的Regex,通俗地將,是一種類似 * 的一種比較進階萬用字元。這種方法不需要下在額外的檔案,只需要配置 Apache。
方法三,mod_proxy_ajp,僅在 Apache 2.1 及以後的版本中可用,Apache 內建的一個新功能模組。這時 Apache 使用 Apache JServ Protocol 與 Tomcat 通訊。不需要下在額外的檔案,需要改動Apache 和 Tomcat 的預設設定檔都需要改動。
方法四,mod_proxy。其實 mod_proxy 既可以做類似於 Wingate 一樣的公司區域網路共用上網代理,也可以做反向 Proxy(Reverse proxy)。這裡使用的是反向 Proxy功能,使用者端瀏覽器不需要把Proxy 伺服器改成這裡的 Apache 地址。mod_proxy 是 Apache 內建功能,並且配置比較簡單。
二、實驗環境
下面我選擇方法四,配置簡易不複雜:
我是用兩台伺服器做的環境如下:
Red hat 6.2 64位 IP地址192.168.2.10和192.168.2.12
Apache部署在10那台伺服器上,tomcat分別部署在兩個伺服器上
三、實驗步驟
yum install –y gcc httpd
[連接埠轉寄配置]
通過http_proxy做tomcat的連接埠轉寄:
描述:將遠程伺服器映射到本機伺服器的URL空間
文法:ProxyPass [路徑] !|url [鍵=值鍵=值 ...]] [nocanon]
上下文:server config, virtual host, directory
狀態:擴充
模組:mod_proxy
配置httpd.conf:
#保證以下模組載入
LoadModuleproxy_module modules/mod_proxy.so
LoadModuleproxy_http_module modules/mod_proxy_http.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
#配置ProxyPass
vi /etc/httpd/conf/httpd.conf <VirtualHost *:80> ServerAdmin [email protected] ServerName 192.168.2.10 ProxyPreserveHost On ProxyPass /one http://192.168.2.10:8080/one ProxyPassReverse /one http://192.168.2.10:8080/one ProxyPreserveHost On ProxyPass /two http://192.168.2.12:8082/two ProxyPassReverse /two http://192.168.2.12:8082/two</VirtualHost>
service httpd resload
本文出自 “營運筆錄 美玲” 部落格,請務必保留此出處http://meiling.blog.51cto.com/6220221/1559458
linux 下apache反向 Proxy tomcat