2014-04-29 59 views
0

我有一個實際名稱爲「ech-10.45.25.12」的unix系統,我已經在其中安裝了apache服務器。 現在我需要以這樣一種方式配置它,即在兩個不同端口的tomcat中的同一臺機器上運行的兩個應用程序應該由同一個域訪問。在apache配置中命名爲VirtualHost

即,我有不同的端口下在同一臺機器上運行兩個應用程序

http://ech-10.45.25.12:8080/issuetracker/ 

http://ech-10.45.25.12:8180/dashboard/ 

我想命名這個服務器(ECH-10.45.25.12)作爲devjunior.mycompany.com 以下是我已經在httpd.conf

Listen 80 
Listen 8080 
Listen 8180 

NameVirtualHost ech-10.45.25.12:80 
NameVirtualHost ech-10.45.25.12:8080 
NameVirtualHost ech-10.45.25.12:8180 

<VirtualHost ech-10.45.25.12:80> 
ServerName devjunior.mycompany.com 
DocumentRoot /www/domain-80 
</VirtualHost> 

<VirtualHost ech-10.45.25.12:8080> 
ServerName devjunior.mycompany.com 
DocumentRoot /www/domain-8080 
</VirtualHost> 

<VirtualHost ech-10.45.25.12:8180> 
ServerName devjunior.mycompany.com 
DocumentRoot /www/domain-8080 
</VirtualHost> 

所做的配置我知道我做了重大失誤

但我應該能夠訪問應用程序S按使用以下URL

http://devjunior.mycompany.com/issuetracker 
http://devjunior.mycompany.com/dashboard 

我應該在系統中創建的任何地方下的任何文件夾中的任何目錄 請告訴謂也。

+0

可能是一個錯字:您在8180虛擬主機規則 –

回答

0

您只配置了名稱。所以,你已經配置了Apache監聽:

http://devjunior.mycompany.com:8080 
http://devjunior.mycompany.com:8180 

您可以:

  1. 配置2域用了NameVirtualHost不使用的端口。 這是做你想做的最優雅的方式

  2. 配置一個單一的域指向文件系統上的單個目錄,2個鏈接爲不同的應用程序。這適用於大多數或純html頁面。隨着更復雜的應用程序,你可能會在很多頭痛..

  3. 域和端口。就像你做的一樣。但是你可以通過http://devjunior.mycompany.com:8080/issuetrackerhttp://devjunior.mycompany.com:8180/dashboard

解決方案1 ​​

只能訪問您可以使用不同的域或子域(這是餅乾在單點登錄的可能性友好)。

Listen 80 

NameVirtualHost ech-10.45.25.12:80 

<VirtualHost ech-10.45.25.12:80> 
ServerName devjunior.mycompany.com 
DocumentRoot /www/domain-80 
</VirtualHost> 

<VirtualHost ech-10.45.25.12:80> 
ServerName dashboard.devjunior.mycompany.com 
DocumentRoot /www/domain-8080 
</VirtualHost> 

<VirtualHost ech-10.45.25.12:80> 
ServerName issuetracker.devjunior.mycompany.com 
DocumentRoot /www/domain-8180 
</VirtualHost> 

方案2是留給讀者一個鍛鍊; Tibial ...:P

+0

中重複了domain-8080,您提出了哪個解決方案? –

+0

@ user3519122解決方案1對我來說是最優雅的,正如我在答案中所說..但取決於您的公司/要求 –

+0

我已經解釋了要求:-) –

0

這裏是我做的,使其工作。 雖然名稱的etc/hosts文件改變什麼也沒做在我的內網,所以我用了機器的實際名稱是ECH-10.45.25.12

NameVirtualHost ech-10.45.25.12:80 

<VirtualHost ech-10.45.25.12:80> 

    ServerName ech-10.45.25.12 
    ProxyPreserveHost on 
    ProxyPass /issuetracker http://ech-10.45.25.12:8080/issuetracker 
    ProxyPass /dashboard http://ech-10.45.25.12:8180/dashboard 

</VirtualHost> 

而且不要忘了加「的proxyName」 & 「proxyPort」屬性到tomcat的server.xml中的標記