Web services 如何同时运行Apache(httpd)和Tomcat?

Web services 如何同时运行Apache(httpd)和Tomcat?,web-services,apache,server-configuration,Web Services,Apache,Server Configuration,我最近得到了一些在Struts上运行的项目,我期待更多的JSP即将到来 在谷歌搜索了这个问题后,我被带到了一些博客上,这些博客上的人也试图这样做。这些博客并不完全是一个循序渐进的过程,而是更像是一个参考资料,以备不时之需 将来也需要做同样的事情。在某些情况下,作者没有确切说明他是否 他成功地尝试同时运行上述两项服务 不幸的是,我不能按照他们的“指示”,因为我有很多PHP项目 配置(上传目录、类路径等)在我的测试服务器上运行,我没有时间重新配置它们 以防我搞砸了httpd服务器。老实说,我没有试过

我最近得到了一些在Struts上运行的项目,我期待更多的JSP即将到来

在谷歌搜索了这个问题后,我被带到了一些博客上,这些博客上的人也试图这样做。这些博客并不完全是一个循序渐进的过程,而是更像是一个参考资料,以备不时之需 将来也需要做同样的事情。在某些情况下,作者没有确切说明他是否 他成功地尝试同时运行上述两项服务

不幸的是,我不能按照他们的“指示”,因为我有很多PHP项目 配置(上传目录、类路径等)在我的测试服务器上运行,我没有时间重新配置它们 以防我搞砸了httpd服务器。老实说,我没有试过一步就把它们一起运行,因为我对更新配置文件犹豫不决

我不确定这是否会增加复杂性,但为了便于移植,我通过xampp(tomcat是xampp附加组件)运行这两个服务

我知道只要我在JSP上工作,我就可以停止我的Apache服务,但是,嘿 这是一个尝试新事物的机会,我不能让它溜走。而且,这真的是 这两个服务在启动时都可以自动运行,这将非常方便 我的工作效率很高,因为我不必在需要时手动切换服务

希望有人坐同一条船

编辑: Tomcat版本是6.0.20 Httpd版本是2.2.14

  • 让Tomcat在80以外的端口上侦听
  • 按照指南设置mod_代理,将特定位置的请求重定向到Tomcat,例如
如果您真的只是测试,请跳过第二步,只需通过Tomcat的另一个端口访问服务器即可


编辑:另请参见关于设置mod_proxy_ajp的内容。

您忽略了提及您正在使用的Tomcat版本,并且您也没有提及您是否确实查看了Tomcat文档来回答这个问题


我建议从这里开始:并研究如何设置mod_jk。

如果您想使用
apache/httpd
来处理来自PHP以及在不同端口上运行的任何其他服务器的请求,比如说8080端口上的tomcat,您可以使用apache/httpd作为“代理”,并映射将由另一个服务器提供的URL。这是使用
ProxyPass
ProxyPassReverse
配置完成的

例如: 如果您希望由PHP和tomcat提供服务,则必须在httpd.config/apache.config[apache2.config]中进行以下更改,具体取决于您使用的apache版本:

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_http_module modules/mod_proxy_http.so
# Uncomment these to proxy FTP or HTTPS
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
#LoadModule proxy_connect_module modules/mod_proxy_connect.so

<VirtualHost *:80>
# Your domain name
# ServerName Domain_NAME_HERE

ProxyPreserveHost On

ProxyPass /tomcat http://localhost:8080/
ProxyPassReverse /tomcat http://localhost:8080/

# The location of the HTML files, and access control information
DocumentRoot /var/www
<Directory /var/www>
    Options -Indexes
    Order allow,deny
    Allow from all
</Directory>

</VirtualHost>
我劝你读书


Ref:

这是一件非常常见的事情,我有点惊讶你很难找到说明。我希望我记得我自己做这件事时遵循的指示。啊,是的,我相信有很多讨论正在进行,但公司的互联网政策阻止了留言板。谢天谢地,mod_jk(2?)方法并没有被认为是一个公共论坛,以至于mod_jk(2?)方法在现代版本的Apache上被广泛认为是不受欢迎的,而现代版本的Apache随mod_proxy_ajp一起提供。它的Apache2.2.14用于httpd和Tomcat 6.0.20:)也修改了这个问题,以防mod_jk2在几年前被删除。我提供的文档链接是tomcat网站上最新的文档…它是mod_jk1.2.30(今年2月发布)…几乎没有被弃用,并且适用于所有版本的Apache。建议标记
步骤1
步骤2(可选)
。并解释在一个备选方案中,该站点看起来是统一的(步骤1和2)。另一个是分段的(步骤1),在浏览器地址栏中具有不同的端口号。(当然,假设这一切都是正确的;这是我到目前为止的第四个猜测。)
 /usr/sbin/setsebool -P httpd_can_network_connect 1