佳木斯湛栽影视文化发展公司

主頁 > 知識(shí)庫 > Nginx/Httpd反代tomcat配置教程

Nginx/Httpd反代tomcat配置教程

熱門標(biāo)簽:美圖手機(jī) 阿里云 使用U盤裝系統(tǒng) 檢查注冊(cè)表項(xiàng) 百度競(jìng)價(jià)點(diǎn)擊價(jià)格的計(jì)算公式 智能手機(jī) 硅谷的囚徒呼叫中心 網(wǎng)站建設(shè)

  在上一篇博客中,我們了解了tomcat的server.xml中各組件的用法和作用;其中對(duì)于tomcat連接器來說,它分三類,一類是http連接器,一類是https連接器,一類是ajp連接器;通常tomcat作為應(yīng)用服務(wù)器,我們不建議也不應(yīng)該讓tomcat直接面向客戶端提供服務(wù);因此進(jìn)入tomcat的訪問就只有其他反代服務(wù)器的請(qǐng)求了;如果說tomcat使用其他反代服務(wù)器對(duì)外提供服務(wù),那么對(duì)于https的訪問就應(yīng)該由代理服務(wù)器端來實(shí)現(xiàn),從代理服務(wù)器到tomcat的訪問,我們應(yīng)該還是使用http或者ajp協(xié)議,綜上所述常用的連接器也就http和ajp;http是一個(gè)文本格式協(xié)議,對(duì)于瀏覽器來說是支持的;ajp協(xié)議是二進(jìn)制格式協(xié)議,對(duì)于瀏覽器是不支持的;所以對(duì)于反代服務(wù)器來講,面向客戶端它提供http協(xié)議訪問,面向服務(wù)端它提供ajp協(xié)議去訪問;這樣去反代tomcat,相對(duì)要安全一點(diǎn),至少客戶端不能繞過代理直接訪問tomcat;

  常見的的反代服務(wù)器有haproxy、nginx、httpd,這三款軟件中haproxy和nginx 可基于http協(xié)議來代理tomcat;httpd可基于http協(xié)議反代tomcat,也支持ajp協(xié)議反代tomcat,如果是ajp協(xié)議反代tomcat,在httpd上要啟用一個(gè)proxy_ajp_module;

  1、nginx反代tomcat

  nginx基于http協(xié)議反代tomcat和反代其他web服務(wù)器的配置沒有本質(zhì)的不同,我們定義一個(gè)location,然后通過proxy_pass 把對(duì)應(yīng)URL反代到后端tomcat服務(wù)器上就好;

  示例:nginx反代tomcat中的www.test1.com 和localhost主機(jī)

  提示:以上配置表示訪問路徑匹配根,就把請(qǐng)求代理到192.168.0.22:8080上,其實(shí)這個(gè)請(qǐng)求到tomcat上個(gè)以后,它會(huì)去找對(duì)應(yīng)host是否有,如果有就從匹配到的host上響應(yīng),如果沒有就從默認(rèn)的host上響應(yīng),很明顯192.168.0.22不能匹配tomcat的host,所以他會(huì)從默認(rèn)host localhost這個(gè)虛擬主機(jī)響應(yīng);相當(dāng)于把訪問/的請(qǐng)求反代給localhost這個(gè)虛擬主機(jī)上;對(duì)于匹配以.jsp或者.do結(jié)尾的資源就走第二個(gè)location,把請(qǐng)求反代到www.test1.com這臺(tái)虛擬主機(jī)上;

  驗(yàn)證:訪問192.168.0.22看看是否訪問到tomcat的localhost虛擬主機(jī)上提供的頁面?

  提示:可以看到我們?cè)L問192.168.0.22時(shí),瀏覽器返回了tomcat中l(wèi)ocalhost提供的主頁;

  驗(yàn)證:訪問192..168.0.22/index.jsp 看看是否訪問到tomcat上的www.test1.com 所提供的主頁?

  提示:可以看到訪問192.168.0.22/index.jsp時(shí),瀏覽器中響應(yīng)了tomcat中www.test1.com這臺(tái)虛擬主機(jī)提供的主頁;

  2、httpd反代tomcat

  示例:httpd基于http協(xié)議反代tomcat

  提示:以上配置表示訪問www.test1.com 把請(qǐng)求反代到http://127.0.0.1:8080上;這里需要注意proxypreservehost off表示不把客戶端傳來的host首部傳到tomcat上去,這意味著我們?cè)L問www.test1.com ,是不能夠訪問到tomcat中www.test1.com這臺(tái)虛擬主機(jī)的,因?yàn)榭蛻舳嗽L問httpd,host首部是www.test1.com,到了httpd后,httpd封裝報(bào)文,它不會(huì)把客戶端host首部原封不動(dòng)的傳給后面tomcat,而是重新封裝host首部為127.0.0.1,因?yàn)榉庋b后的報(bào)文host首部的值為127.0.0.1,到達(dá)tomcat后,它匹配不到127.0.0.1的虛擬主機(jī),所以會(huì)從默認(rèn)虛擬主機(jī)localhost返回,所以客戶端訪問www.teste1.com,會(huì)響應(yīng)tomcat中l(wèi)ocalhost虛擬主機(jī)的頁面;

  驗(yàn)證:用瀏覽器訪問www.test1.com 看看是否響應(yīng)tomcat 中l(wèi)ocalhost的頁面給我們?

  提示:可以看到我們?cè)L問www.test1.com ,響應(yīng)的并不是tomcat中www.test1.com這個(gè)虛擬主機(jī)提供的頁面,而是localhost虛擬主機(jī)提供的頁面;這其中的原因就是proxypreservehost off;它并沒有把客戶端的host首部傳遞到tomcat;

  修改proxypreservehost off 為on ,然后重啟httpd,再訪問www.test1.com 看看是否還是給我們返回localhost虛擬主機(jī)的頁面呢?

  提示:以上修改proxypreservehost on 表示把客戶端host首部的值傳遞到后端tomcat;這樣一來tomcat就可以根據(jù)客戶端傳遞的host首部來分別響應(yīng)不同虛擬主機(jī)上的頁面了;

  驗(yàn)證:重啟httpd服務(wù),訪問www.test1.com 看看是否會(huì)把tomcat中www.test1.com 虛擬主機(jī)的頁面響應(yīng)給我們?

  提示:可以看到現(xiàn)在我們?cè)L問www.test1.com 就不再給我們響應(yīng)localhost虛擬主機(jī)的頁面了,而是www.test1.com虛擬主機(jī)的頁面,說明httpd把客戶端hosts首部的值傳遞到后端tomcat上了;

  測(cè)試:訪問192.168.0.22 看看是否訪問到默認(rèn)localhost虛擬主機(jī)頁面呢?

  提示:可以看到我們?cè)L問192.168.0.22時(shí),響應(yīng)給我們的是tomcat中l(wèi)ocalhost虛擬主機(jī)頁面;原因是httpd把客戶端host首部的值192.168.0.22傳遞給后端tomcat后,在tomcat上并沒有找到192.168.0.22這個(gè)虛擬主機(jī),所以在tomcat上就以默認(rèn)虛擬主機(jī)localhost響應(yīng)給httpd,然后在響應(yīng)給瀏覽器;所以我們看到的就是tomcat中l(wèi)ocalhost虛擬主機(jī)的頁面;

  3、httpd基于ajp協(xié)議反代tomcat

  以上面的例子,httpd通過http協(xié)議反代tomcat和通過ajp協(xié)議反代tomcat,從httpd的配置上,沒有本質(zhì)的不同;不外乎就是把http協(xié)議修改成ajp協(xié)議,把后端tomcat8080端口改成8009端口;其他的都一樣;如下所示

  提示:這里需要注意一點(diǎn),httpd使用ajp協(xié)議反代tomcat ,需要請(qǐng)用proxy_ajp_module模塊,否則httpd是不支持ajp協(xié)議的;

  驗(yàn)證:分別在瀏覽器上訪問www.test1.com 和192.168.0.22 看看是否能訪問到tomcat中對(duì)應(yīng)虛擬主機(jī)的頁面?

  提示:可以看到我們使用基于ajp協(xié)議反代tomcat和基于http反代tomcat在訪問上沒有什么不同;

到此這篇關(guān)于Nginx/Httpd反代tomcat配置教程的文章就介紹到這了,更多相關(guān)Nginx/Httpd反代tomcat配置內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

標(biāo)簽:懷化 煙臺(tái) 湘潭 山南 黃山 湖北 通遼 賀州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Nginx/Httpd反代tomcat配置教程》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    洪湖市| 丰顺县| 双城市| 芦溪县| 南皮县| 邛崃市| 启东市| 武威市| 南靖县| 左云县| 株洲市| 罗城| 蛟河市| 鄄城县| 札达县| 宁河县| 冀州市| 辽中县| 明溪县| 上犹县| 长丰县| 浙江省| 阿拉善盟| 木兰县| 刚察县| 澜沧| 大邑县| 江西省| 邢台县| 宜宾市| 潞城市| 都兰县| 望江县| 沙田区| 磐安县| 海南省| 峨边| 濉溪县| 抚顺市| 普陀区| 伊春市|