zoukankan      html  css  js  c++  java
  • nginx 配置多域名 及 tomcat 负载均衡 二

    上回建立了 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:
    ginx-1.12.0html	omcat_localhost"
                unpackWARs="true" autoDeploy="true">
    <Context path="" docBase="D:
    ginx-1.12.0html	omcat_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: ginx-1.12.0html omcat_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:
    ginx-1.12.0html	omcat_test.tomcat.com" unpackWARs="true" autoDeploy="true">
      <Context path="" docBase="D:
    ginx-1.12.0html	omcat_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:xampphtdocscom;
                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.


  • 相关阅读:
    Django模型层Meta内部类详解
    jquery checkbox的相关操作——全选、反选、获得所有选中的checkbox
    c# 委托与异步调用
    DataTable转成List集合
    c# winform 自动升级
    C# winform单元格的formatted值的类型错误 DataGridView中CheckBox列运行时候System.FormatException异常
    C#创建无窗体的应用程序
    sql 一个表的字段更新至另一个字段的方法
    datagridview 获取选中行的索引
    CHECKEDLISTBOX用法总结
  • 原文地址:https://www.cnblogs.com/silyvin/p/9106813.html
Copyright © 2011-2022 走看看