2012-04-19 15 views
3

我使用Apache2(Ubuntu)和Tomcat來提供Web應用程序。目前,我的/etc/apache2/ports.conf只有默認的端口偵聽(Listen 80)。如果我使用url http://hostname:80/webAppName,我的瀏覽器只是保持時鐘說「等待主機名」。我相信Tomcat的默認端口是8080,是否需要將8080添加到ports.conf或更改Tomcat默認端口。有任何想法嗎?Apache2 Ubuntu和Tomcat Web應用程序配置

回答

1

您missmatching阿帕奇HTTPD(Web服務器,主要是Apache或引用的Apache2)和Apache Tomcat(一個Java servlet引擎)!

來訪問應用程序在Tomcat你必須訪問Tomcat的配置(通常是8080 HTTP)端口:http://hostname:8080/application

如果你想通過httpd的訪問tomcat的應用程序,那麼你必須配置的httpd代理您的要求。如何做到這一點可以在我對this question的回答中看到。

1

我沒有與Tomcat的經驗,但谷歌上搜索,我發現這一點:

安裝MOD-JK; apache 2連接器。這是將apache與tomcat連接起來的軟件包。

apt-get install libapache2-mod-jk 

安裝完成後,您需要對其進行配置。這些行添加到/etc/apache2/apache2.conf中

# Worker properties file 
JkWorkersFile /etc/apache2/workers.properties 

# Logging 
JkLogFile /var/log/apache2/mod_jk.log 

# Set the jk log level [debug/error/info] 
JkLogLevel info 

# Log format 
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] " 

您需要修改workers.properties文件,以便它知道在哪裏可以找到你的Tomcat安裝。您需要將您的工作人員指向您的tomcat和java目錄,並指定它正在運行的端口(本例中爲8080)。

workers.tomcat_home=/usr/local/tomcat/tomcat 
workers.java_home=/usr/lib/jvm/java-6-sun 
ps=/ 
worker.list=worker1 

worker.default.port=8080 
worker.default.host=localhost 
worker.default.type=ajp13 
worker.default.lbfactor=1 

現在,回到/etc/apache2/apache2.conf,並添加您想要共享的tomcat上下文。不幸的是(據我所知)你不能翻譯成不同的上下文(例如,你的Apache的TestContext必須轉換爲Tomcat中的TestContext,如果你想翻譯它,你需要使用apaches(真棒)模塊mod_rewrite。)

# Send servlet for context/TestContext to worker named worker1 

JkMount /TestContext worker1 
JkMount /TestContext/* worker1 

JkMount /AnotherContext worker1 
JkMount /AnotherContext/* worker1 

重新啓動apache(/etc/init.d/apache2 restart)。現在,發送給Apache的任何請求(即http://myserver/TestContext)都將被轉發到tomcat。

+0

不推薦使用mod_jk。它非常過時。對於代理或負載平衡,請使用mod_proxy和mod_proxy_http(或者mod_proxy_ajp,如果您偏好AJP)和mod_balancer一起使用。 – magomi 2012-04-19 20:13:45

0

Web應用程序是,它提供了一種爲營銷人員去了解人們訪問其網站的網頁或應用程序服務器的動態擴展。 Web Application