2015-11-03 24 views
0

我有一個虛擬的雲服務器上有一個tomcat 7運行在端口8080例如。 a.x.y.z:8080(其中a.x.y.z是公共ip)。我在tomcat上的上下文路徑「hello」上部署了一個應用程序,以便我可以像a.x.y.z:8080/hello那樣訪問它。 現在我已經買了一個域名example.com,並且已經將它翻譯成了公有ip axyz,現在我可以通過url example.com:8080/hello訪問我的應用程序,但實際上我想要的是在訪問example.com我將能夠訪問我的應用程序。如何實現它?通過域名訪問tomcat應用程序

回答

0

好吧,我解決了這個問題:

安裝的Apache2後,在/etc/apache2/apache2.conf中文件 我附:

<VirtualHost *:80> 
    ProxyPreserveHost On 
    ProxyRequests Off 
    ServerName www.example.com 
    ServerAlias example.com 
    ProxyPass/http://localhost:8080/ 
    ProxyPassReverse/http://localhost:8080/ 
</VirtualHost> 

保存文件並重新啓動的Apache2服務器。 有了這個,每當我點擊example.com時,我都會得到tomcat的主頁(localhost:8080)。然後我打開了tomcat管理器(example.com/manager/html)並停止了&在根目錄(/)路徑處取消部署應用程序。 (因此,無論何時您訪問example.com,您將不再看到tomcat主頁,而是一個空白頁面)

現在我在tomcat中將我的應用程序部署爲root。如果你正在使用maven,你可以這樣做,如here。 由於這個我的應用程序在example.com中可用。 (如果不部署應用程序的根目錄,你必須使用example.com/myapp訪問它)

現在,每當我打example.com MYAPP將被訪問。

0

您可以使用mod_proxy模塊使用您的域名訪問您的tomcat應用程序,請登錄您的服務器並使用以下代碼更新您的httpd配置。

ProxyPreserveHost On 
ProxyPass/http://0.0.0.0:8080/ 
ProxyPassReverse/http://0.0.0.0:8080/ 

注意:在上面的代碼中更新正確的服務器IP而不是0.0.0.0。