9

我最近得到了在 Struts 上运行的项目,我期待更多的 JSP 出现。

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

不幸的是,我无法遵循他们的“说明”,因为我配置了很多 PHP 项目(上传目录、类路径等)以在我的测试服务器上运行,而且我没有时间重新配置它们万一我搞砸了 httpd 服务器。老实说,出于对更新配置文件犹豫不决的同样原因,我没有尝试过将它们一起运行。

我不确定这是否会增加复杂性,但出于可移植性目的,我正在通过 xampp 运行这两项服务(tomcat 是 xampp 插件)。

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

希望SO上有人骑着同一条船。

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

4

3 回答 3

8
  • 让 Tomcat 监听 80 以外的端口
  • 按照指南设置 mod_proxy 以将某个位置的请求重定向到 Tomcat,例如这个.

如果您真的只是在测试,请跳过第二步,只需通过 Tomcat 的不同端口访问服务器。

编辑:另见http://httpd.apache.org/docs/2.2/mod/mod_proxy_ajp.html关于设置 mod_proxy_ajp。

于 2010-08-17T01:46:27.157 回答
1

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

我建议从这里开始:http: //tomcat.apache.org/connectors-doc/webserver_howto/apache.html并研究设置 mod_jk。

于 2010-08-17T01:57:34.090 回答
0

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

例如:如果您希望http://localhost/php由 PHP 提供服务,而http://localhost/tomcat由 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',请按照链接执行以下命令:

 /usr/sbin/setsebool -P httpd_can_network_connect 1

我建议您阅读mod_proxy

参考:Redhat mod_proxy 配置

于 2017-07-31T23:40:13.117 回答