1. 程式人生 > >Tomcat8配置多個埠訪問各埠對應的JavaWeb專案

Tomcat8配置多個埠訪問各埠對應的JavaWeb專案

背景:最近遇到個專案部署的小要求:一個tomcat下配置多個埠去訪問埠對應的JavaWeb專案

原理:tomcat中conf下server.xml檔案中的service節點即可配置tomcat的埠號及對應的專案

配置步驟:

1.開啟tomcat下conf資料夾中的serve.xml檔案,找到service節點對應的程式碼

 <Service name="Catalina">
    <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
    
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443"/>

    <Engine defaultHost="localhost" name="Catalina">

      <Realm className="org.apache.catalina.realm.LockOutRealm">
       
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
      </Realm>

      <Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">

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

    </Engine>
  </Service>

2.貼上1步驟中找到的service節點程式碼,複製到service結尾處,使兩個service節點成為兄弟節點,即:

<Service name="Catalina">
    <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
    
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443"/>

    <Engine defaultHost="localhost" name="Catalina">

      <Realm className="org.apache.catalina.realm.LockOutRealm">
       
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
      </Realm>

      <Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">

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

    </Engine>
  </Service>
<Service name="Catalina_second"> <!--保證service的name屬性值不同-->
    <Connector connectionTimeout="20000" port="8500" protocol="HTTP/1.1" redirectPort="8443"/> <!--修改port為你想要使用的埠,注意不能被佔用-->
    
    <!--<Connector port="8009" protocol="AJP/1.3" redirectPort="8443"/>--> //註釋掉這句話

    <Engine defaultHost="localhost" name="Catalina_second"> <!--保證service中Engine節點的name值不同-->

      <Realm className="org.apache.catalina.realm.LockOutRealm">
       
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
      </Realm>

      <Host appBase="webapps_second" autoDeploy="true" name="localhost" unpackWARs="true"> <!--在Tomcat的根目錄下新建一個webapps_second資料夾存放war包-->

        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t "%r" %s %b" prefix="localhost_access_log" suffix=".txt"/>
	<Context path="" docBase="test" debug="0" reloadable="true"/> <!--這句話可以使該埠下專案中的某個頁面為訪問域名的首個頁面,docBase為專案名-->
    </Engine>
  </Service>

至此已經實現tomcat多個埠部署多個專案,下面介紹的是將域名與某個專案的頁面繫結。

3.在service下的host節點中加上<Contextpath=""docBase="test"debug="0"reloadable="true"/>(test為專案名),然後開啟conf下的web.xml檔案,在welcom-file-list中配置對應專案的首頁面

   tip:<Contextpath=""docBase="test"debug="0"reloadable="true"/>和3步驟主要用於戶域名和頁面的繫結,即輸入域名訪問專案的哪個頁面


4.,儲存檔案,重啟tomcat,即可通過不同埠訪問對應專案了

--------------------2018/4/1 22:26更新------------------

tip:

1.<Context path="" docBase="test" debug="0"reloadable="true"/>

           path留空的話表示配置的域名直接訪問該專案,path填寫專案名的話表示域名後面帶上專案名才能訪問該專案。docBase專案訪問路徑。(一般webapp下面的root配置的path就為空)

 2.

2.1. 域名。現在的域名不是很貴,有很多人都有,而我們註冊域名的網站也會有一個DNS助解析,就是把伺服器的IP繫結到這些域名上。


2.2.我們域名有了,現在就來說說我們的專案;比如說我現在有兩個專案都在我的這個tomcat下面。那我們輸入http://localhost:8080/abc就可以訪問到我們abc這個專案了,但是埠號8080如何去掉呢?


在tomcat的conf資料夾下有一個server.xml。我們開啟這個檔案,找到8080,只需要把8080改成80即可。當我們再次輸入http://localhost/abc即可。


2.3. 可是我們的域名如何跟專案繫結到一起呢?我們再次找到tomcat下面的conf資料夾裡面的server.xml。


修改<Host name="我們所要繫結的域名" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"></Host>


2.4.當啟動tomcat的時候,輸入我們繫結的域名,是不是看到了我們的tomcat。可是我們想訪問我們的專案還得再域名後面加上專案名稱才能訪問到,也就是說到現在我們的域名還沒跟專案繫結到一起。


我們在看一下第三部,想讓我們的專案和域名繫結到一起,我們只需要在</Host>前面加上<Context docBase="專案名" path=""  reloadable="true" >即可。


例如:<Host name="www.abc.com" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"><Context docBase="baidu" path=""  reloadable="true" ></Host>


2.5. 當我們的有兩個專案都放在同一個tomcat下的時候,我們只需要把<Host></ Host>加上兩個既可以完成我們的2個專案的繫結,但是專案名稱別忘了改哦。


2.6. 當我們的伺服器自己維護(沒有放在機房),我們需要對我們的路由做一下對映。就拿我的路由來舉例。我的路由是TP-LINK WR340G型號,進入路由後,我們能找到一個轉發規則,那裡面有一個虛擬伺服器的這項,點選新增條目以後會有:服務埠號、IP地址、協議、狀態、常用服務埠號。我們只需在這裡IP地址(伺服器的區域網IP),協議選擇ALL(有的路由好像沒有這項,那就不需要填寫了),狀態選擇生效,常用服務埠號選擇HTTP或者WEB即可。這時預設的埠號為80。當常用服務埠號沒有HTTP或者WEB這項時,可以選擇DNS,然後手動把埠號改成80。點選生效。儲存即可。如果說本人說的路由對映對您不適用或者沒有看明白,可以上網找各種路由的對映方法。


相關推薦

Tomcat8配置訪問對應JavaWeb專案

背景:最近遇到個專案部署的小要求:一個tomcat下配置多個埠去訪問埠對應的JavaWeb專案原理:tomcat中conf下server.xml檔案中的service節點即可配置tomcat的埠號及對應的專案配置步驟:1.開啟tomcat下conf資料夾中的serve.xml

Tomcat中配置工程使用不同訪問問題

因為沒有深入的去學習Tomcat,所以下面的方法只是簡單的解決了這個問題。 第一種方式是: Eclispse使用的是安裝版的Tomcaat,專案直接釋出到Tomcat/webapps目錄下。 直接去Tomcat中去修改server.xml檔案,將檔案內容修

Nginx 配置服務共用80

使用場景:兩個不同埠的微服務,當我們測試的時候,需要放到同一臺伺服器上,共享80埠訪問 可以在nginx.conf中做如下配置: server {                   liste

詳解nginx 配置tomcat共用80

場景:專案1放在tomcat1中,專案2放在tomcat2中,兩個tomcat放在同一臺伺服器上,需要共享80埠訪問注意:這裡和叢集部署是不同的,叢集部署是一個專案放在多個tomcat中。這裡通過nginx做反向代理 修改conf/nginx.conf中的server如下:server {        li

Tomcat8配置項目域名訪問

proc http cfa block 一段 只需要 pre pattern ref 環境:  Tomcat8.0.53目標:  設置為使用指定的域名或者IP訪問 找到以下信息 <Host name="localhost" appBase="webapps"

linux系統一個tomcat配置域名,每個域名對應一個專案

由於專案的需要,我們公司有兩個域名,每個域名對應一個專案,這樣我們就可以使用不同的域名訪問不同的專案了, 我們的網站使用的是web伺服器Tomcat,框架是自己封裝的簡易版jsp-servlet,域名

Tomcat8.5 配置專案的方法

一、 需要的環境  :自行安裝好 Tomcat 8.5  。 以及兩個以上java的 web專案,打包成war包。 二 、把war包放在 webapps 目錄下面 , 如下(根據自己路徑來放置) E:\wamp\Tomcat 8.5\webapps 三、開啟配置

Tomcat配置號或應用,使得域名後面加不同訪問

1.一個Tomcat下配置多個埠號,這裡是針對一個應用服務而言,只需在Service下配置多個<Connector>。如下: <Server port="8005" shutdown="SHUTDOWN" debug="0"> <Service

oracle新增配置監聽

原來配置:listener.ora檔案如下: LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = DESKTOP-L9P3QTT)(PORT = 1521)) (ADDRESS = (PROTOCO

nginx 80配置域名 502

網上找了很多帖子看都沒有解決問題,最後發現是自己的proxy_pass配置的地址埠號錯誤,也就是說代理的地址有問題,無法訪問,所以報錯了502,但是error日誌裡面看不出來是後面的地址配置的有問題,將地址改好之後,問題解決     同時,如果需要一太伺服器配置多個域

同一個tomcat配置對應不同的app

今天有人問我,同一個tomcat部署多個app的話,要管理不同的埠,該如何配置,我的總結如下: <Server port="8005" shutdown="SHUTDOWN"> <Listener className="org.apache.catalina.sta

Nginx配置專案放在不同的tomcat中,共享同一個

一、準備兩個tomcat以及Nginx安裝包 1.1分別命名為tomcat1,tomcat2。 1.2在兩個tomcat的webapps下面分別新建個專案 server1,server2. 二、配置Ngnix的配置檔案 http { include

1 Tomcat 配置 SSL 證書域名 共有80

單個Tomcat配置多個域並配置多個證書 http://blog.csdn.net/baidu_18607183/article/details/51983439 Tomcat 9 配置多個虛擬主機與HTTPS證書 多個虛擬主機 公用1個埠 http://

Linux配置Tomcat同時執行以及tomcat 的介紹

步驟如下:       (1)修改/etc/profile檔案。新增一組java環境變數(如果已經有了就不用再新增),和兩組CATALINA環境變數(我沒有進行此步驟的設定,可能因為我的Tomcat是免安裝版的吧)記得修改完要使其生效, 用命令:source /et

xampp配置監聽和不同的網站目錄

1.配置Apache檔案httpd.conf 開啟xampp安裝目錄下的Apache-》conf資料夾下的httpd.conf,用記事本開啟 首先在Listen 80埠下新增其他監聽埠: Listen 8001 Listen 8002 Listen 8003 然後在httpd.conf最

tomcat配置

一、Tomcat 安裝後本身提供了一個server,埠配置預設是8080,對應目錄為:..\Tomcat 6.0\webapps 二、Tomcat 6.0 配置多個埠,其實也就是給Tomcat增加幾個server,並設定對應目錄。下面以增加兩個埠號為例 第一步、修改serv

Tomcat配置虛擬目錄、域名、Http監聽的方式

測試了一下tomcat下配置虛擬目錄、多域名、多個Http監聽埠的配置方式,下面做一個conf/server.xml配置結果的記錄 <Server port="8005" shutdown="SHUTDOWN">   <Listener classN

利用不同為本地nginx伺服器配置站點

首先找到nginx的配置檔案nginx.conf [[email protected] nginx]# vi nginx.conf 開啟配置檔案後找到類似下面一段: include /etc/nginx/conf.d/*.conf; 沒有的就加上,這是我的路徑,你

mina在spring中的配置

本次練習中是監聽2個埠 applicationContext-mina.xml: <?xml version="1.0" encoding="UTF-8"?>  <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN/

apache 配置,部署專案

修改httpd.conf配置檔案     1、新增監聽埠 Listen 70   2、配置要訪問的專案,在httpd.conf檔案中新增如下內容 <VirtualHost *:70>     DocumentRoot /home/CMS/GYCMS/