单个Apache服务器可以同时处理Tomcat和PHP吗?

时间:2012-07-06 14:26:30

标签: java php apache

我要求在同一个Apache上运行一个同时具有Java应用程序和PHP应用程序的服务器。这可能吗?

这个问题可能非常愚蠢,但我对java要求或安装程序一无所知。

我可以做同样的事情,让java应用程序在一个端口上运行,而PHP应用程序在另一个端口上运行,两者都在同一个Apache上吗?

4 个答案:

答案 0 :(得分:8)

是的,你可以这样做。基本上,您必须在一个端口上运行Apache(+ PHP)服务器,在另一个端口上运行Tomcat服务器。

  • 您可以将第二个端口暴露给外部世界,并让您的URL使用端口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文档有一整章。

答案 1 :(得分:3)

Apache HTTPd可以使用ModProxy或ModAJP委托给Apache Tomcat,并且可以根据请求的域,路径或文件扩展名进行配置。您的Apache HTTPd配置将保持不变。

您需要将Apache Tomcat配置为而不是侦听端口80,然后配置您选择的Apache HTTPd代理解决方案,以便在不同的端口上与Tomcat通信。

以下是更多信息的起点:Apache + Tomcat: Using mod_proxy instead of AJP

答案 2 :(得分:3)

  

sinle apache服务器可以同时处理tomcat和php吗?

是的,您需要安装apache和tomcat,但是您可以配置apache以使用AJP协议将所有JSP请求重定向(透明地为用户提供)到tomcat。

在此处查看更多信息: http://www.datadisk.co.uk/html_docs/java_app/tomcat6/tomcat6_apache_server.htm

答案 3 :(得分:0)

这可能,

我配置了一个反向代理,该反向代理使用两个位置的反向代理为存储在同一服务器中的一个PHP网站(Drupal)和一个Java网站(用于业务逻辑)提供服务,这种配置的优势在于它不会出于安全原因,必须在URL上公开Tomcat使用的端口。

这是我实现这一目标的方式:

<VirtualHost *:80>
ProxyPreserveHost       On
DocumentRoot            "/srv/www/htdocs/"
ErrorLog                /var/log/httpd/app_error_log.log
CustomLog               /var/log/httpd/app_log.log combined
ServerName              myapp.com

#Drupal PHP Content, stored at / as the main site.
<Location />
    ProxyPass http://localhost/
    ProxyPassReverse http://localhost
    Order allow,deny
    Allow from all
</Location>

#Tomcat/java content, secondary site used to process payments and business logic:
<Location /javaApp>
    ProxyPass http://localhost:8080/javaApp/
    ProxyPassReverse http://localhost:8080/javaApp/
    Order allow,deny
    Allow from all
</Location>

</VirtualHost>

重新启动Apache:

service httpd restart;

测试您的反向代理: PHP / Drupal(就我而言,我使用的是drupal,但可以是任何PHP代码):

http://yourserverip/ or http://localhost/

Java:

http://yourserverip/javaApp or http://localhost/javaApp

我希望有人可以找到这个有用的东西。 我很难解决这个问题。 :)

关于。