1. 程式人生 > >nginx 輔助 同一個tomcat繫結多個二級域名及輔助多個tomcat繫結多個二級域名

nginx 輔助 同一個tomcat繫結多個二級域名及輔助多個tomcat繫結多個二級域名

公司現階段部署環境,一臺Linux伺服器,部署了4個專案,一個專案A 單獨使用一個tomcatA     ,專案B,C,D 使用同一個tomcat B。

一開始BCD專案通過配置tomcat 配置檔案中Server.xml 中的HOST 節點來達到同一個tomcat使用不同二級域名的目的的:如下

<Host name="B.xxx.com"  appBase="webapps"
            unpackWARs="true" autoDeploy="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>

        <Host name="C.xxx.com" appBase="webapps"  
               unpackWARs="true" autoDeploy="true"  
                      xmlValidation="false" xmlNamespaceAware="false">
                             <Alias>wap.tengjin.com</Alias>
                                    <Context path="" docBase="/opt/apache-tomcat-7.0.63/webappswap"  reloadable="true"></Context>
                                     </Host>


         <Host name="D.xxxx.com" appBase="webapps"  
                        unpackWARs="true" autoDeploy="true"  
                                              xmlValidation="false" xmlNamespaceAware="false">
                                                                 <Alias>sj.jieduoduo.tengjin.com</Alias>
                                     <Context path="" docBase="/opt/apache-tomcat-7.0.63/webappsjieduo"  reloadable="true"></Context>
                                                                                                                                                    </Host>

而當時A專案是直接使用IP訪問的。先在的需求是將A專案也繫結上另外一個二級域名 A.xxx.com

這就需要用到nginx做請求的分發了,佔用80埠,將請求分發到不同的埠上,並指定域名

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

#主要是用於設定一組可以在proxy_pass和fastcgi_pass指令中使用額代理伺服器,預設負載均衡方式為輪詢
#一個tomcat下放了三個專案 用的是8083介面
  upstream tomcat_client {
    server localhost:8083;
  }
#這個放的是安卓,ios的介面
upstream tomcat_app_api {
       server localhost:8080;
    }

#這個放的是圖片伺服器
upstream tomcat_img {
       server localhost:8088;
    }

     server {
    listen 80;
    server_name B.xxx.com;
    location / {
      proxy_pass http://tomcat_client;
      proxy_redirect default;
      #設定代理
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
  }

 server {
    listen 80;
    server_name C.xxx.com;
    location / {
      proxy_pass http://tomcat_client;
      proxy_redirect default;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
  }

 server {
    listen 80;
    server_name D.xxx.com;
    location / {
      proxy_pass http://tomcat_client;
      proxy_redirect default;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
  }

#安卓 ios介面
    server {
    listen 80;
    server_name A.xxx.com;
    location / {
      proxy_pass http://tomcat_app_api;
      proxy_redirect default;
      #設定代理
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
  }
  
#圖片伺服器介面
    server {
    listen 80;
    server_name E.xxx.com;
    location / {
      proxy_pass http://tomcat_img;
      proxy_redirect default;
      #設定代理
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
  }

 

}

以上的配置,後來又增加了一個圖片伺服器的二級域名。