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


Can a single Apache server handle both Tomcat and PHP?

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

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

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

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

  • 你可以向外界公开第二个端口,并让你的URL使用Apache/PHP的端口80或Java服务器的8080。 这很简单,但您可能会发现上游防火墙会阻止远程 Web 浏览器连接到 80 以外的任何端口。

  • 您可以将 Apache 服务器配置为 Java 服务器的反向代理。 例如,Apache服务器可能会识别出http://site.com/javaapp/foo.html是针对Java服务器的,并将对该URL的请求中继到http://localhost:8080/javaapp/foo.html

Apache文档中有一整章是关于使用mod_proxy配置正向和反向代理的。

是的。

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

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

以下是更多信息的起点:Apache + Tomcat:使用 mod_proxy 而不是 AJP

这可以使用 Apache 反向代理,

我配置了一个 Apache 虚拟主机,它服务于一个 PHP 网站(Drupal)和一个 java(tomcat,用于业务逻辑),它们使用具有 2 个位置的反向代理存储在同一服务器中,这种配置的优点是它不会暴露 Tomcat 正在使用的端口在 URL 上使用出于安全原因对我来说是强制性的。

这就是我实现这一点的方式:

<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 front end website.
<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/

爪哇岛:

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

我希望有人能发现这很有用。我很难弄清楚这一点。:)

问候。

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

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

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