我最近获得了在Struts上运行的项目,我期待更多的JSP即将推出。
在谷歌搜索问题后,我被引导到试图做同样事情的人的博客。这些博客并不完全是他们如何做到这一步的一步一步的过程,但更像是一个参考,如果他们 需要在将来做同样的事情。在某些情况下,作者并没有确切地说他是否 他试图同时运行上述两项服务是成功的。
不幸的是,由于我有很多PHP项目,所以我无法遵循他们的“说明” 配置(上传目录,类路径等...)在我的测试服务器上运行,我没有时间重新配置它们 万一我弄乱了httpd服务器。出于诚实的考虑,我没有尝试过将它们一起运行,原因与更新配置文件犹豫不决的原因相同。
我不确定这是否会增加复杂性,但我通过xampp运行这两项服务(tomcat是一个xampp附加组件),以便于移植。
我知道只要我在JSP上工作,我就可以停止我的Apache服务,但是嘿这个 尝试新事物是一种机会,我不能让它滑倒。而且,它真的会 方便两个服务只在启动时自动运行,这将真正增加 我的工作效率,因为我不需要在需要时手动切换服务。
希望SO上有人乘坐同一条船。
编辑: Tomcat版本是6.0.20 Httpd版本是2.2.14
答案 0 :(得分:8)
如果您真的只是测试,请跳过第二步,只需通过Tomcat的其他端口访问服务器。
修改:有关设置mod_proxy_ajp的信息,请参阅http://httpd.apache.org/docs/2.2/mod/mod_proxy_ajp.html。
答案 1 :(得分:1)
你忽略了提到你正在使用的Tomcat版本,你也没有提到你是否真的看过Tomcat文档来回答这个问题。
我建议从这里开始:http://tomcat.apache.org/connectors-doc/webserver_howto/apache.html并考虑设置mod_jk。
答案 2 :(得分:0)
如果您想使用apache/ httpd
来提供来自PHP的请求以及在不同端口上运行的任何其他服务器,请在端口8080上使用tomcat,您可以使用apache / httpd充当“代理“并映射将由另一台服务器提供的URL。这是使用ProxyPass
ProxyPassReverse
配置完成的。
例如: 如果你希望PHP服务http://localhost/php而tomcat服务http://localhost/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>
如果您在httpd
上运行centos
,可能会收到错误Apache Mod_proxy '[Error] (13)Permission Denied'
,请按照this链接执行以下命令:
/usr/sbin/setsebool -P httpd_can_network_connect 1
我建议你阅读mod_proxy。