您的位置:首页 > 运维架构 > Tomcat

nginx 配置多域名 及 tomcat 负载均衡 二

2017-04-22 17:49 411 查看
上回建立了 test.tomcat.com —— nginx —— 8080 8081

缺点在于

1 nginx负载均衡部署的 127.0.0.1:8080 和 127.0.0.1:8081 访问各自的webapp目录,给war包的部署带来麻烦,需要部署两台tomcat

2 如果不仅有test.tomcat.com 还有其他二级域名 如 test1.tomcat.com 等域名需要访问不同的应用则不太方便

先解决第一个问题,那么就需要将两台tomcat host 指向同一个目录:

<Host name="localhost" appBase="D:\nginx-1.12.0\html\tomcat_localhost"
unpackWARs="true" autoDeploy="true">
<Context path="" docBase="D:\nginx-1.12.0\html\tomcat_localhost" debug="0" reloadable="false" crossContext="true"/> 这一句是加的,否则无法访问

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />

</Host>

我们在nginx的html中将tomcat主页复制过去,目录为:tomcat_localhost   然后在index.jsp中标明
localhost
重启两台tomcat,访问 test.tomcat.com

ok,此时两台服务器同时指向 D:\nginx-1.12.0\html\tomcat_localhost,我们设置的旗标处显示
localhost 而不再是交替显示 local 8080 和 local 8081



第二个问题,涉及到tomcat 虚拟主机

为了区别,在nginx的html中将tomcat主页复制过去,目录为tomcat_test.tomcat.com ,然后在index.jsp中标明
test.tomcat.com

在两台tomcat server.xml中加入,配置虚拟主机

<Host name="test.tomcat.com" appBase="D:\nginx-1.12.0\html\tomcat_test.tomcat.com" unpackWARs="true" autoDeploy="true">
<Context path="" docBase="D:\nginx-1.12.0\html\tomcat_test.tomcat.com" debug="0" reloadable="false" crossContext="true"/>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="test.tomcat.com." suffix=".txt" pattern="%h %l %u %t "%r" %s %b" />
</Host>

重启两台tomcat,访问 test.tomcat.com



可以看到,这里出了点问题,重定向指向了  server.xml 中 host 为localhost 的目录,而不是  test.tomcat.com

这是因为nginx转发时未携带 host 信息

打开nginx.conf ,

upstream tomcat {
server 127.0.0.1:8080 weight=1;
server 127.0.0.1:8081 weight=1;
}

server
{
listen 80;
server_name test.tomcat.com;

location / {
# root C:\xampp\htdocs\com;
index index.php index.html index.htm;
proxy_pass http://tomcat; # include proxy.conf;
proxy_set_header Host $host;
}

}

加入红色的这一句,标明代理时携带主机头

nginx -s reload

重新访问 test.tomcat.com



done.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: