Apache 阿帕奇公司;JBoss同时使用端口80

Apache 阿帕奇公司;JBoss同时使用端口80,apache,jboss,apache-config,mod-proxy,mod-jk,Apache,Jboss,Apache Config,Mod Proxy,Mod Jk,我在同一台机器上安装了Apache2和JBoss4.2.3,希望它们都使用端口80。我看到人们用几种方式来做这个mod_jk,mod_代理,但我不确定哪一种是最好的 我不需要任何负载平衡,但我需要HTTPS 不能让两个应用程序同时监听同一个tcp端口(80)。您可以使用mod_jk将端口80上的http请求从Apache服务器路由到JBoss服务器。这是我最熟悉和喜欢的方法。mod_代理也应该可以工作,但我发现这个方法有点复杂 在Apache上配置https可能最好作为一个单独的主题来处理。在购

我在同一台机器上安装了Apache2和JBoss4.2.3,希望它们都使用端口80。我看到人们用几种方式来做这个mod_jk,mod_代理,但我不确定哪一种是最好的


我不需要任何负载平衡,但我需要HTTPS

不能让两个应用程序同时监听同一个tcp端口(80)。您可以使用mod_jk将端口80上的http请求从Apache服务器路由到JBoss服务器。这是我最熟悉和喜欢的方法。mod_代理也应该可以工作,但我发现这个方法有点复杂

在Apache上配置https可能最好作为一个单独的主题来处理。在购买ssl证书、创建自签名证书等方面存在问题

要完成配置mod_jk以将请求从Apache服务器路由到JBoss服务器,需要两个步骤:

配置Apache web服务器,将一些请求转发到JBoss服务器。

Apache配置将根据您所使用的Apache发行版(windows、RHEL、debian、从源代码构建等)而有所不同,但对于任何Apache安装,其概念都应该类似

您需要从tomcat网站下载平台的mod_jk:

您的操作系统供应商可能会为您提供一个二进制文件,所以请先检查一下。如果愿意,您也可以自己编译mod_jk

将mod_jk二进制文件(mod_jk.so用于Linux/UNIX系统,不确定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指令

mod_jk.conf的更多详细设置可以在tomcat文档页面找到:

重要的指令是:
JkWorkersFile(指定workers.properties文件所在的位置)
JkMount(用于将URI映射到tomcat worker的装入点)

例如:

JkWorkersFile /etc/apache2/workers.properties<br>
JkMount  /examples/*  myworker<br>
JkMount  /examples    myworker
JkWorkersFile/etc/apache2/workers.properties
JkMount/examples/*myworker
JkMount/myworker示例
这些指令将/examples和/examples/URI映射到myworker-tomcat-worker

从概念上讲,您可以将worker视为表示tomcat或JBoss实例,将mount视为将URI映射到worker的一种方式。这种表示方式允许一台Apache服务器作为几个tomcat或JBoss服务器的前端。如果您只有一个IP地址可以使用,但希望在一个Apache服务器后面运行多个应用程序服务器,那么这将非常方便

properties文件描述Apache服务器将连接到的tomcat或JBoss服务器。此文件中的重要条目包括:

worker.list=myworker<br>
worker.tomcat.type=ajp13<br>
worker.tomcat.host=localhost<br>
worker.tomcat.port=8009
worker.list=myworker
worker.tomcat.type=ajp13
worker.tomcat.host=localhost
worker.tomcat.port=8009
在workers.properties文件的tomcat文档页面中可以找到其他worker属性:

配置JBoss服务器以接受来自Apache服务器的连接

JBoss服务器配置为接受端口8009(默认ajp端口)上的mod_jk连接,但最好知道在哪里配置,以备将来需要更改

配置位于JBoss服务器基于tomcat的部分,位于${JBoss_server_configuration}/deploy/jbossweb.sar/server.xml中。这是针对JBossAS 5.1.0.GA的,以前的版本也在类似的位置。mod_jk连接器在AJP 1.3协议的连接器部分中配置,如下所示:

<Connector protocol="AJP/1.3" port="8009" address="${jboss.bind.address}"    redirectPort="8443" />


修改此部分最常见的原因是,如果您有多个tomcat或JBoss服务器通过AJP协议连接到apache,您可以调整AJP连接器将侦听的端口号,以避免冲突。

为什么您需要JBoss和apache侦听同一端口?您想要实现什么?一个原因是您只有一个可用的IP地址,并且您希望您的web应用程序在端口443上应答(JBoss需要应答端口443)。同一台机器还托管subversion存储库,该存储库也可通过apache在端口443上使用。通过使用下面描述的方法,apache服务器可以应答和服务端口443上的svn请求,并通过AJP将web应用程序的请求转发给JBoss。