讓 Tomcat 同時啟用不同的PORT對外展示網站

通常預設安裝好Tomcat之後
對外的通訊埠只有一個
以我現在安裝測試的Tomcat 7來說
預設時的對外通訊埠是8080
一般來說我們都會把它改成80 Port

但是
如果我們有一天需要
同一個站台
但是有其他對外通訊埠的話
該怎麼做呢?

通常這個需求會出現在某些特別要求的連接方式
我會遇到這樣的問題就是因為公司在製作遊戲的時候
因為遊戲需要上傳一些資料到伺服器上
但是某些手機居然無法透過J2ME直接跟80 Port做溝通
變成需要開啟其他的PORT才能運作

很奇怪的問題
但是總得要解決不是嗎?

在網路上找了一些文章
測試之後確定好了要怎麼弄
在此說明一下

首先我是用Tomcat 7.0.19的版本做示範

安裝的時候會選擇預設的通訊埠
我設定的是80 PORT

安裝完畢之後
從安裝目錄中的conf資料夾中找出server.xml這個檔案
預設安裝目錄通常會是在C:\Program Files\Apache Software Foundation\Tomcat 7.0
所以檔案的路徑位置就是C:\Program Files\Apache Software Foundation\Tomcat 7.0\conf\server.xml





  
  
  
  
  
  
  
  
  

  
  
    
    
  

  
  
  
    
    
    
    
    
    
    
               
    
    

    
    


    

     
    

      
              

      
      
        
        
      

      

        
        

        
        

      
    
  

這時候將這段程式碼插入在139行之下

  
    
    
    
    
    
      
        
      
    
      
        
      
      
    
  

在此大約說明一下要注意修改的地方

【Service】
首先是Service
所謂的Service是一個存在於Web Server中的服務
可以將一個或者多個Connectors綁在特定的Engine上
在Service中會明確定義出使用的對外通訊PORT
以及其他的各種參數

因為每個Service只有可以讓瀏覽器連接的通訊埠
所以我們要讓Tomcat可以做到讓瀏覽器同時瀏覽單個Web Server上的多重PORT
就必須額外建立一個Service

  

這行的作用是宣告Tomcat在啟動的時候
會另外再開啟一組Service
此Service的名稱為Catalina2
當然~
您也可以自行設定想要的名稱


【Engine】
再來就是這行
一個Engine代表一個特定的Service的請求處理的管道
所以我們這邊也得將名稱更改的跟Service name相同

    

【AJP】
這東西其實目前用不到
雖然我們還是得去設定它
AJP的作用主要是可以應用在讓一個Tomcat伺服器可以將收到的要求轉發給其他伺服器
或者是其他伺服器收到的要求轉送給Tomcat處理
例如讓IIS收到JSP的處理要求的時候
轉發給Tomcat做解析
然後再把處理好的資料轉送給User瀏覽

    

因為不要跟原來的AJP對衝
所以將PORT從8009更改為8010


基本上只要加入這些代碼存檔之後
重新啟動伺服器
就發現可以利用
http://localhost/
http://localhost:8080/
這樣的方式去瀏覽同一台伺服器上的網頁

簡短技術備忘文到此結束~XD


參考文件連結:
1.Tomcat Server.xml 詳細說明
2.tomcat 同時開多個端口
3.同一個tomcat開多個端口分別發佈不同項目

Leave a Reply

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>