我在同一台机器上同时拥有Apache 2和JBoss 4.2.3并希望它们都使用80端口。有几种方法我看到人们在做这个mod_jk,mod_proxy,但我不确定哪一个是最好的。
我不需要任何负载平衡,但我确实需要HTTPS。
答案 0 :(得分:7)
您不能让两个应用程序同时侦听同一个tcp端口(80)。您可以使用mod_jk将端口80上的http请求从Apache服务器路由到JBoss服务器。这是我最熟悉和喜欢的方法。 mod_proxy也应该有效,但我觉得这个方法有点复杂。
在Apache上配置https可能最好作为一个单独的主题处理。购买ssl证书,创建自签名证书等问题
完成配置mod_jk以将请求从Apache服务器路由到JBoss服务器有两个步骤:
配置Apache Web服务器以将一些请求转发到JBoss服务器。
Apache配置将根据您使用的Apache的分布(Windows,RHEL,debian,从源代码构建等)而有所不同,但对于任何Apache安装,概念都应该类似。
您需要从tomcat网站下载适用于您平台的mod_jk:
http://tomcat.apache.org/download-connectors.cgi
您的操作系统供应商可能会为您提供二进制文件,因此请先检查。如果您愿意,也可以自己编译mod_jk。
将mod_jk二进制文件(用于Linux / UNIX系统的mod_jk.so,不确定Windows)复制到Apache服务器模块目录中(这取决于您使用的Apache发行版)。
将等效指令添加到Apache配置中:
LoadModule jk\_module /usr/lib/apache2/modules/mod\_jk.so
您应该将两个配置文件添加到Apache配置目录:mod_jk.conf和workers.properties。您应该包含主Apache配置文件中的mod_jk.conf:
Include /etc/apache2/mod\_jk.conf
mod.jk.conf包含了workers.properties文件和JkWorkersFile指令。
可以在tomcat文档页面找到mod_jk.conf的更多详细设置:
http://tomcat.apache.org/connectors-doc/reference/apache.html
重要指令是:
JkWorkersFile(指定workers.properties文件所在的位置)
JkMount(用于将URI映射到tomcat worker的挂载点)
一个例子:
JkWorkersFile /etc/apache2/workers.properties<br>
JkMount /examples/* myworker<br>
JkMount /examples myworker
这些指令将/ examples和/ examples / URI映射到myworker tomcat worker。
从概念上讲,您可以将worker视为表示tomcat或JBoss实例,并将mount视为将URI映射到worker的方法。这种表示事物的方式允许一个Apache服务器成为多个tomcat或JBoss服务器的前端。如果您只能使用一个IP地址但希望在一台Apache服务器后面运行多个应用程序服务器,这可能很方便。
workers.properties文件描述了Apache服务器将连接到的tomcat或JBoss服务器。此文件中的重要条目是:
worker.list=myworker<br>
worker.tomcat.type=ajp13<br>
worker.tomcat.host=localhost<br>
worker.tomcat.port=8009
可以在tomcat文档页面中找到workers.properties文件的其他工作程序属性:
http://tomcat.apache.org/connectors-doc/reference/workers.html
配置JBoss服务器以接受来自Apache服务器的连接
JBoss服务器被配置为接受端口8009(默认的ajp端口)上的mod_jk连接,但是如果你想在将来更改任何内容,最好知道在哪里配置它。 / p>
配置位于JBoss服务器的基于tomcat的部分,位于$ {JBOSS_SERVER_CONFIGURATION} /deploy/jbossweb.sar/server.xml中。这适用于JBoss AS 5.1.0.GA,以前的版本位于类似的位置。 mod_jk连接器在AJP 1.3协议的Connector部分中配置,如下所示:
<Connector protocol="AJP/1.3" port="8009" address="${jboss.bind.address}" redirectPort="8443" />
修改此部分的最常见原因是,如果您有多个tomcat或JBoss服务器通过AJP协议连接到apache,您可以调整AJP连接器将侦听的端口号,以便没有冲突。