2012-07-06 134 views
7

我有一個需求,即擁有一臺運行在同一個Apache上的Java應用程序和PHP應用程序的服務器。這可能嗎?單個Apache服務器可以同時處理Tomcat和PHP嗎?

這個問題可能很愚蠢,但我不知道java的要求或安裝程序。

我可以做這樣的事情,以便在同一個Apache上運行一個端口上的Java應用程序和另一個端口上的PHP應用程序?

+0

你可以用VirtualHosts做什麼,http://httpd.apache.org/docs/2.0/vhosts/examples.html#port,但是你不想讓它只使用一個端口嗎? – cha0site 2012-07-06 14:28:31

+0

這是一個奇怪的要求。也許他們希望在同一臺服務器上安裝Apache Tomcat(用於Java應用程序)和Apache HTTP Server for PHP?這當然是可行的。 – 2012-07-06 14:34:49

+0

@古斯塔夫卡爾森 - 你說得對 – Hacker 2012-07-06 14:35:30

回答

8

是的,你可以做到這一點。實質上,您必須在一個端口上運行Apache(+ PHP)服務器,並在另一個端口上運行Tomcat服務器。

  • 可以暴露第二個端口到外面的世界,和你的網址,請使用端口80的Apache/PHP或(比如說)8080的Java服務器。這很簡單,但您可能會發現上游防火牆會阻止遠程Web瀏覽器連接到除80以外的任何端口。

  • 您可以將您的Apache服務器配置爲Java服務器的反向代理。因此,例如,Apache服務器可能會認識到http://site.com/javaapp/foo.html用於Java服務器,並將該URL的請求轉發至http://localhost:8080/javaapp/foo.html

關於使用mod_proxy配置正向和反向代理的Apache文檔有整個章節。

3

是的。

Apache HTTPd可以使用ModProxy或ModAJP委託給Apache Tomcat,並且可以根據請求的域,路徑或文件擴展名進行配置。您的PHP的Apache HTTPd配置將保持不變。

您需要將Apache Tomcat配置爲而不是在端口80上偵聽,然後將您選擇的Apache HTTPd代理解決方案配置爲在不同端口上與Tomcat對話。

下面是詳細信息的起點:Apache + Tomcat: Using mod_proxy instead of AJP

相關問題