日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

nginx+tomcat集群负载均衡中的多虚拟主机配置

發布時間:2025/6/15 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 nginx+tomcat集群负载均衡中的多虚拟主机配置 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

雖然夜深了,但是還是解決了這個困擾我一個晚上的問題,記錄下來備查。

接著我前不久寫的這一篇來的:Linux下nginx和tomcat的整合http://hi.baidu.com/gnaiqeh/blog/item/2f43dac9e98d781a7f3e6fc7.html

舉個例子,現在是這樣的情況:我現在有a、b、c三個不同的應用,每個Tomcat集群機(一共3個)上都建立了這三個應用的虛擬主機,我要把這三個應用用一個nginx來負載均衡。

中間測試了很多次,失敗的過程就不多說了,直接說最終解決的辦法。

首先要把3個虛擬主機的域名(a.gnaiqeh.cn、b.gnaiqeh.cn、c.gnaiqeh.cn)都指向到nginx機的公網ip上。

然后還是修改nginx的配置文件nginx.conf:

配置文件中upstream段還是保持不變,依舊是3個tomcat集群機的地址及負載因子:

upstream?gnaiqeh?{
??????server?192.168.0.11:8080?weight=1;
??????server?192.168.0.12:8080?weight=1;
??????server?192.168.0.13:8080?weight=1;
????}

?

因為有3個應用,所以應該有3個server段,這里只寫其中一個,其他兩個只需要修改一下server_name即可:

server?{
????????listen???????80;
????????server_name?a.gnaiqeh.cn;?#另外兩個是b.gnaiqeh.cn、c.gnaiqeh.cn
????????location?/?{
????????????root???html;
????????????index?index.jsp?index.html?index.htm;
????????????proxy_redirect?off;
????????????proxy_set_header?Host?$host;?#這一句至關重要
????????????proxy_set_header?X-Real-IP?$remote_addr;
????????????proxy_set_header?X-Forwarded-For?$proxy_add_x_forwarded_for;
????????????proxy_pass?http://gnaiqeh;
????????}
????????error_page???500?502?503?504?/50x.html;
????????location?=?/50x.html?{
????????????root???html;
????????}
????}

?

proxy_set_header是nginx的http代理模塊中的一個指令。

在nginx中的默認proxy是只能對后面real server做端口轉發的,而不能做域名轉發,即默認的是:

proxy_set_header?Host?$proxy_host;

?

我們要通過域名轉發就必須改為:

proxy_set_header?Host?$host;

?

最后修改tomcat的配置文件server.xml,主要是配置虛擬主機:

<Host?name="a.gnaiqeh.cn"?appBase="webapps-a"
????????????unpackWARs
="true"?autoDeploy="true"
????????????xmlValidation
="false"?xmlNamespaceAware="false">
????????<Context?path=""?docBase="/mnt/a"?reloadable="true"?crossContext="true"/>
??????</Host>
??????<Host?name="b.gnaiqeh.cn"?appBase="webapps-b"
????????????unpackWARs
="true"?autoDeploy="true"
????????????xmlValidation
="false"?xmlNamespaceAware="false">
????????<Context?path=""?docBase="/mnt/b"?reloadable="true"?crossContext="true"/>
??????</Host>
??????<Host?name="c.gnaiqeh.cn"?appBase="webapps-c"
????????????unpackWARs
="true"?autoDeploy="true"
????????????xmlValidation
="false"?xmlNamespaceAware="false">
????????<Context?path=""?docBase="/mnt/c"?reloadable="true"?crossContext="true"/>
??????</Host>

?

3臺集群機均改成上面一樣的。

然后重啟nginx,重啟tomcat,測試訪問三個域名都通過,打完收工。

總結

以上是生活随笔為你收集整理的nginx+tomcat集群负载均衡中的多虚拟主机配置的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。