apache與tomcat 反向代理
首先,有client?? proxy? server
正向代理:有多個(gè)client芋肠,想要訪問server,這時(shí)client與proxy是一個(gè)lan,proxy將client的請(qǐng)求轉(zhuǎn)發(fā)給server,server只知道有人來請(qǐng)求,但不知道是誰(shuí)(因?yàn)楸淮砹耍?/p>
反向代理:這時(shí)proxy與server是一個(gè)lan饥努,client想要訪問server捡鱼,proxy將client的請(qǐng)求拿到,之后從server里挑了一個(gè)出來酷愧,應(yīng)答給client驾诈,對(duì)于client來說,它以為自己是直接訪問server溶浴,其實(shí)卻是proxy經(jīng)過操作后的結(jié)果乍迄。
正向代理代理客戶端,反向代理代理服務(wù)端
反向代理好處:
1. 提升對(duì)靜態(tài)文件的處理性能
2. 利用 Web 服務(wù)器來做負(fù)載均衡以及容錯(cuò)
3. 無縫的升級(jí)應(yīng)用程序
這三點(diǎn)對(duì)一個(gè) web 網(wǎng)站來說是非常之重要的士败,我們希望我們的網(wǎng)站不僅是速度快闯两,而且要穩(wěn)定,不能因?yàn)槟硞€(gè) Tomcat
宕機(jī)或者是升級(jí)程序?qū)е掠脩粼L問不了谅将。
Apache與tomcat的反向代理有兩種方案漾狼,一種方案是用mod_jk,另一種方案使用Apache2.2之后自帶的模塊prxoy饥臂,這邊主要講proxy逊躁。
關(guān)于proxy,有2種代理的方法隅熙,一種是用ajp_proxy,一種是http_proxy稽煤。從名字上就可以看出,這是兩種不同協(xié)議的代理方式囚戚,因?yàn)橥瑢儆趐roxy模塊酵熙,配置起來差別不大。
安裝好Apache后驰坊,它有許多自帶的模塊是不開啟的绿店,我們想用proxy模塊,需要自己開啟它。Apache目錄下的conf\httpd.conf假勿,Apache在啟動(dòng)時(shí)會(huì)根據(jù)里面的內(nèi)容自動(dòng)加載模塊借嗽,不需要加載的模塊在里面是被注釋掉的,我們要做的是把注釋去掉
#---------------------start------------------------
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.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
LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
LoadModule speling_module modules/mod_speling.so
LoadModule proxy_html_module modules/mod_proxy_html.so
LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
LoadModule buffer_module modules/mod_buffer.so
LoadModule cache_module modules/mod_cache.so
LoadModule cache_disk_module modules/mod_cache_disk.so
LoadModule xml2enc_module modules/mod_xml2enc.so
----------------------end---------------------
將Include conf/extra/httpd-vhosts.conf注解去掉
模塊的具體作用詳解Apache官網(wǎng)說明
之后修改 conf\extra\httpd-vhosts.conf
可以在這里面看到相應(yīng)配置
serveradmin :當(dāng)出錯(cuò)的時(shí)候顯示管理員的郵箱地址
documentroot :設(shè)置Apache自己的本地目錄地址转培,{SRVROOT}為相對(duì)地址恶导,使用時(shí)還有修改<directory>,以獲取目錄權(quán)限浸须,這2個(gè)在httpd.conf中修改惨寿,或者不修改,直接寫自己的地址
servername:要代理的地址
serveralias :要代理的地址的別名
errorlog:錯(cuò)誤日志地址
customlog :日志地址
<VirtualHost*:80>
ServerAdmin? husun@hotmail.com
ServerName localhost
ServerAlias localhost
ProxyPass?? /ajp://127.0.0.1:8009/
ProxyPassReverse?? /ajp://127.0.0.1:8009/
ErrorLog?? "logs/lbtest-error.log"
CustomLog?? "logs/lbtest-access.log"? common
注意:這里的8009是與tomcat中ajp協(xié)議端口號(hào)是一致的删窒。這樣就實(shí)現(xiàn)了在訪localhost的時(shí)候裂垦,Apache將這個(gè)請(qǐng)求代理成了 127.0.0.1:8009。不過反向代理的主要作用是維護(hù)服務(wù)端的安全肌索,所以要做負(fù)載均衡蕉拢,如下圖官網(wǎng)所示,下圖不全诚亚,具體請(qǐng)到官網(wǎng)上看
我的晕换,簡(jiǎn)單的負(fù)載均衡就完成了
loadfactor表示響應(yīng)次數(shù),例如9119響應(yīng)一次站宗,9219響應(yīng)2次闸准,這樣算一輪,
proxyset是負(fù)載均衡算法的加載梢灭,這些算法有自己的模塊夷家,使用時(shí)要先加載。
官網(wǎng)鏈接:http://httpd.apache.org/docs/2.4/
負(fù)載均衡參考:https://blog.csdn.net/ranxiaoqian/article/details/58594504
兩種方案三種方式:https://www.ibm.com/developerworks/cn/opensource/os-lo-apache-tomcat/index.html