在Tomcat部署多項目,通過Nginx反向代理分別配置二級功能變數名稱的流程

来源:http://www.cnblogs.com/dcncy/archive/2017/12/16/8046163.html
-Advertisement-
Play Games

購買功能變數名稱。示例:example.com 設置多個二級功能變數名稱。如圖: 配置tomcat文件: 修改tomcat/conf目錄下的server.xml文件: 在tomcat根目錄下,複製webapps文件夾,併在tomcat根目錄下粘貼兩份,分別命名為:webapps1和webapps2。註意此文件夾名稱 ...


  1. 購買功能變數名稱。示例:example.com

  2. 設置多個二級功能變數名稱。如圖:

    • 功能變數名稱解析 
  3. 配置tomcat文件:

    1. 修改tomcat/conf目錄下的server.xml文件:

      1. 如下配置配置了3個容器,使用三個不同的埠。
      2. 請註意三點:①埠號:Connector port;②容器名稱:portservice name;③項目存放地址:Host appBase;
      3. 示例配置如下,可直接使用。
        <Service name="Catalina">
            <Connector port="8080" protocol="HTTP/1.1"
                       connectionTimeout="20000"
                       redirectPort="8443" />
            <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
            <Engine name="Catalina" defaultHost="localhost">
              <Realm className="org.apache.catalina.realm.LockOutRealm">
                <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
                       resourceName="UserDatabase"/>
              </Realm>
              <Host name="localhost"  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 &quot;%r&quot; %s %b" />
              </Host>
            </Engine>
          </Service>
          
          <Service name="Catalina1">
            <Connector port="8081" protocol="HTTP/1.1"
                       connectionTimeout="20000"
                       redirectPort="8443" />
            <Connector port="8010" protocol="AJP/1.3" redirectPort="8443" />
            <Engine name="Catalina1" defaultHost="localhost">
              <Realm className="org.apache.catalina.realm.LockOutRealm">
                <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
                       resourceName="UserDatabase"/>
              </Realm>
              <Host name="localhost"  appBase="webapps1"
                    unpackWARs="true" autoDeploy="true">
                <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
                       prefix="localhost_access_log" suffix=".txt"
                       pattern="%h %l %u %t &quot;%r&quot; %s %b" />
              </Host>
            </Engine>
          </Service>
          
          <Service name="Catalina2">
            <Connector port="8082" protocol="HTTP/1.1"
                       connectionTimeout="20000"
                       redirectPort="8443" />
            <Connector port="8011" protocol="AJP/1.3" redirectPort="8443" />
            <Engine name="Catalina1" defaultHost="localhost">
              <Realm className="org.apache.catalina.realm.LockOutRealm">
                <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
                       resourceName="UserDatabase"/>
              </Realm>
              <Host name="localhost"  appBase="webapps2"
                    unpackWARs="true" autoDeploy="true">
                <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
                       prefix="localhost_access_log" suffix=".txt"
                       pattern="%h %l %u %t &quot;%r&quot; %s %b" />
              </Host>
            </Engine>
          </Service>
    2. 在tomcat根目錄下,複製webapps文件夾,併在tomcat根目錄下粘貼兩份,分別命名為:webapps1和webapps2。註意此文件夾名稱需要與第一步server.xml中添加的Host appBase名稱一致。示例圖如下:

      • 捕獲1
    3. 在tomcat/conf文件夾下,複製Catalina,併在tomcat/conf目錄下粘貼兩份(Catalina文件夾下的localhost文件夾不要更改名稱,否則server.xml所添加的配置也需要改動。為不引起麻煩事,建議直接複製Catalina文件夾即可),分別命名為:Catalina1和Catalina2,註意此文件夾命名需要與第一步server.xml中添加的portservice name名稱一致。示例圖如下:

      • 捕獲
  4. 配置Nginx反向代理:修改nginx/conf目錄下的nginx.conf文件,添加反向代理配置與虛擬主機配置:

    #反向代理
        upstream www.example.com{
            server 110.110.110.110:8080;    #主機ip+埠號
        }        
        upstream me.example.com{
            server 110.110.110.110:8081;
        }
        upstream dev.example.com{
            server 110.110.110.110:8082;
        }
              
    #配置虛擬主機  
        server {  
            listen 80;  
            server_name www.example.com;  
            index index.jsp index.html index.htm; 
            
            #include proxy-pass-php.conf;
            
            location / {  
                    proxy_pass http://www.example.com;    #與server_name保持一致
                    proxy_set_header Host $http_host;
                    proxy_set_header X-Real-IP $remote_addr;
                    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            }
            access_log  /home/wwwlogs/www.example.com.log;
        } 
        
        server {  
            listen 80;  
            server_name me.example.com;  
            index index.jsp index.html index.htm; 
            
            #include proxy-pass-php.conf;
            
            location / {  
                    proxy_pass http://me.example.com;
                    proxy_set_header Host $http_host;
                    proxy_set_header X-Real-IP $remote_addr;
                    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            }
            access_log  /home/wwwlogs/me.example.com.log;
        } 
        
        server {  
            listen 80;  
            server_name dev.example.com;  
            index index.jsp index.html index.htm; 
            
            #include proxy-pass-php.conf;
            
            location / {  
                    proxy_pass http://dev.example.com;  
                    proxy_set_header Host $http_host;
                    proxy_set_header X-Real-IP $remote_addr;
                    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;                
            }  
            access_log  /home/wwwlogs/dev.example.com.log;
        }  
              
    include vhost/*.conf;
  5. 完成配置後,在tomcat中分別於webapps、webapps1、webapps2文件夾下部署三個不同的項目,項目名稱都命名為ROOT.war。啟動tomcat,分別訪問www.example.com、me.example.com、dev.example.com即可。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 微軟推出的ORM,EF在我開發的項目中給我的感覺一直都是慢.優點是高度封裝的底層.便於開發.Dapper在多篇性能比較的網站中.都是名列前三.缺點是手寫SQL,不便於開發.如果能結合EF的優點和Dapper的優點.那麼此次改造相比原生Dapper是脫胎換骨的. 上圖是Dapper最簡單的語法.相比A ...
  • 一、.NET Core的誕生 聊 .NET Core,就不得不說他的爸爸 .NET。當年Java剛剛興起,如火如荼,微軟也非常推崇Java,當時Windows平臺的Java虛擬機就是微軟按照JVM標準實現的,據說也是當時性能最好的Java虛擬機。但是微軟也是有私心的,微軟總想搞點Windows平臺上 ...
  • 一、控制系統啟動過程 1.要想順利啟動系統,bootsect.s必須讓在磁碟的固定位置上,這個工作是由 make / makefile 完成的 2.啟動保護模式以後,指令jmpi 0, 8和沒有啟動保護模式的區別:得出跳轉地址的方式不一樣 3.在setup中獲取記憶體大小這一個硬體參數的目的是為後面的 ...
  • 一、快照 例如,當我們在虛擬機上做實驗或是作測試時,難免碰到一些不熟悉的地方,此時做個快照,備份一下當前的系統狀態,一旦操作錯誤,可以很快還原到出錯前的狀態,完成實驗,最終避免一步的失誤導致重新開始整個實驗或測試的後果。 操作演示: 二、克隆 VMware支持兩種類型的克隆: 完整克隆 鏈接克隆 完 ...
  • 原文鏈接: http://blog.csdn.net/luoweifu/article/details/46595285 什麼是線程 什麼是線程?線程與進程有什麼關係?這是一個非常抽象的問題,也是一個特別廣的話題,涉及到非常多的知識。我不能確保能把它講得好,也不能確保講的內容全部都正確。即使這樣,我 ...
  • 1、cd 跳轉到根目錄 2、cd .. 跳轉到上一級目錄 3、ll和ls查看當前目錄的內容 4、vi 查看文檔內容 5、/ 用vi打開文件後,該命令可以定位到你要查找的內容 6、tail -f 文件名 查看文件,文件會實時更新 7、 chmod u+x file、 chmod u-x file、ch ...
  • 1.1 MySQL用戶管理 1.1.1 用戶的定義 用戶名+主機域 1.1.2 用戶的作用 1、用戶登錄 2、用於管理資料庫及數據 1.1.3 連接資料庫 定義用戶:用戶名+主機域,密碼 定義許可權:對不同的對象進行許可權(角色)定義 命令: grant 許可權 on 許可權範圍 to 用戶 identif ...
  • 之前的步驟一路next,有設置記憶體大小的根據機器的配置設置一下即可。 需要註意的地方, 下麵是對於簡化版進行設置的步驟 虛擬機網路模式 1、橋接模式 在橋接模式下,VMware虛擬機里的系統就像是 區域網 中的一臺 獨立 的主機,它可以訪問同一個網段內任何一臺機器,即可以相互ping通。 在橋接模式 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...