我想在 RHEL 5 服务器上运行 Apache 和 Tomcat,Apache 处理 Ruby on Rails 应用程序(通过 mod_rails/Passenger)和 Tomcat 处理 Java 应用程序。
在 Apache 下,每个 Rails 应用程序都有一个 URL 和虚拟主机。URL 已经在我们的 DNS 服务器中配置为指向机器。
在 Tomcat 下,每个 Java 应用程序都有一个这样的 URL:ourserver.ourcompany.com/app1
、ourserver.ourcompany.com/app2
等。
服务器已经启动并运行 Tomcat 6,在端口 80 上运行并为多个 Java 应用程序提供服务。我想添加 Apache 并重新配置。我熟悉如何配置一个单独的 Apache 服务器来使用Passenger 托管RoR 应用程序。我只是不知道如何让 Apache 和 Tomcat 像这样一起工作。
我通过谷歌搜索找到了各种资源和讨论(例如,这个),但它们往往有点粗略和不完整,或者它们似乎并不真正符合我想要做的事情。我链接到的似乎是如果您想将所有请求发送到 Tomcat,而不仅仅是某些请求并让 Apache 处理其他请求。
server.xml
有人可以为and建议一个示例配置httpd.conf
,或者可能指向我一些更详细的资源吗?
您不需要对 Tomcat 进行任何更改,
server.xml
只需将 Tomcat 恢复为默认端口,以便 Apache 可以处理端口 80。大部分工作将通过 Apache 配置文件完成。我通常将它们放在外部,httpd.conf
而是将它们粘贴到<ServerRoot>/conf.d/
子目录下的较小配置片段中。鉴于您的
ourserver.ourcompany.com/app1
&ourserver.ourcompany.com/app2
我会假设配置如下:如果您有多个 Tomcat 服务器集群在后面,那么您可能需要查看设置 mod_balancer 并将其移动
ajp://
到mod_balancerBalancerMember
并替换为balancer://
引用平衡器配置的 URL。我个人不喜欢 mod_proxy_ajp;在 Apache 下运行 Tomcat 时,我会直接安装 mod_jk(来自 Tomcat 编码器的模块)以提供 AJP 连接。您可以通过 5 种方式将 mod_jk 调整到周日,以提高应用程序的性能(线程、超时、敲门等)。
从 tomcat.apache.org 获取“tomcat-connectors”源并编译它
cd tomcat-connectors-1.2.28-src/native
./configure --with-apxs=/usr/sbin/apxs --with-java=/usr/local/jdk1.6.0_18 --enable-prefork
制作
cp apache-2.0/mod_jk.so /usr/local/lib/
现在,您必须将其插入到一般意义上的 Apache 配置中,然后根据需要插入到每个虚拟主机中。在整体配置中,您添加如下内容:
您将需要创建基本的 worker.properties 文件,这是文档:http: //tomcat.apache.org/connectors-doc/reference/workers.html一个非常基本的文件可能如下所示:
这将使用 server.xml 中的默认端口 8009 配置 - 您可以在此处旋转一百万个旋钮以无休止地调整性能。然后,在每个虚拟主机中“挂载”所需的应用程序:
正如您在底部看到的那样,不要忘记一点安全性并拒绝对您的 WEB-INF 文件夹的所有访问——大多数 web 应用程序在部署为战球时都有其数据库 DSN 和密码 web.xml。