我要求在同一个Apache上运行一个同时具有Java应用程序和PHP应用程序的服务器。这可能吗?
这个问题可能非常愚蠢,但我对java要求或安装程序一无所知。
我可以做同样的事情,让java应用程序在一个端口上运行,而PHP应用程序在另一个端口上运行,两者都在同一个Apache上吗?
答案 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通信。
答案 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
我希望有人可以找到这个有用的东西。 我很难解决这个问题。 :)
关于。