如何将应用程序从 Tomcat8 映射到 JBoss Web 服务器中的 Apache?
How to map an app from Tomcat8 to Apache in JBoss Web Server?
我安装了 JBoss 3.0.1,它在 80 端口上的 Apache 和 8080 端口上的 Tomcat8 都运行良好。我部署了一个 sample war file from Tomcat and can view it at http://localhost:8080/sample/.
那么是否可以将它映射到 Apache 上,然后我们可以在 http://localhost/sample/ 上访问它?如果是的话,你能帮我怎么做吗?如有任何建议,我们将不胜感激。
更新: 为了 POC 目的,OS 是 Windows 7
你可以通过 AJP 来完成。您没有指定您使用的 OS,但我假设它是 GNU/Linux,尽管 MS Windows 的说明类似。
程序如下:
- 为 AJP 安装 Apache 模块,通常称为
libapache2-mod-jk
。 (在debian/ubuntu中你可以运行sudo apt-get install libapache2-mod-jk
)。
- 然后您将拥有一个名为
jk
或类似名称的新模块。您必须启用它(在 debian/ubuntu 中您可以 运行 sudo a2enmod jk
)。
- 大多数情况下会使用默认配置,打开它看看
JkWorkersFile
指向哪里。需要此文件来配置管理与 tomcat 应用程序通信的 workers
。
- 创建工人文件(如果它不存在)。工人档案大致如下
示例工人文件:
ps=/
worker.list=worker1,worker2,...
# worker1 definition
worker.worker1.port=8009
worker.worker1.host=192.168.1.23
worker.worker1.type=ajp13
# worker2 definition
....
每个工人都可以指向不同的 tomcat 服务器。端口必须与配置到 $CATALINA_HOME/conf/server.xml
中的端口相同。在这个文件中有一个 AJP 协议的连接器:
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
每个工人都必须指向这个端口。
最后,您可以使用 JkMount workerName
将虚拟主机、位置等配置到 Apache 中,以指示 Apache 此 url 必须转发给适当的工作人员。
文档中有很多示例。这里有 Tomcat 官方文档:https://tomcat.apache.org/connectors-doc/webserver_howto/apache.html
希望对您有所帮助!
编辑
如果您使用的是 MS Windows,您可以从这里下载 mod_jk
url https://tomcat.apache.org/download-connectors.cgi
按照建议安装和配置。由于你要映射这个 url http://localhost/sample to tomcat app in http://localhost:8080/sample 你的配置必须如下:
workers 文件(使用 server.xml
tomcat 配置文件 查看端口):
worker.list=worker1
# worker1 definition
worker.worker1.port=8009
worker.worker1.host=localhost
worker.worker1.type=ajp13
Apache Location 指令(查看命令,拒绝并允许以满足您的需要):
<Location /sample/>
JkMount worker1
Order deny,allow
Deny from all
Allow from localhost
</Location>
我安装了 JBoss 3.0.1,它在 80 端口上的 Apache 和 8080 端口上的 Tomcat8 都运行良好。我部署了一个 sample war file from Tomcat and can view it at http://localhost:8080/sample/.
那么是否可以将它映射到 Apache 上,然后我们可以在 http://localhost/sample/ 上访问它?如果是的话,你能帮我怎么做吗?如有任何建议,我们将不胜感激。
更新: 为了 POC 目的,OS 是 Windows 7
你可以通过 AJP 来完成。您没有指定您使用的 OS,但我假设它是 GNU/Linux,尽管 MS Windows 的说明类似。
程序如下:
- 为 AJP 安装 Apache 模块,通常称为
libapache2-mod-jk
。 (在debian/ubuntu中你可以运行sudo apt-get install libapache2-mod-jk
)。 - 然后您将拥有一个名为
jk
或类似名称的新模块。您必须启用它(在 debian/ubuntu 中您可以 运行sudo a2enmod jk
)。 - 大多数情况下会使用默认配置,打开它看看
JkWorkersFile
指向哪里。需要此文件来配置管理与 tomcat 应用程序通信的workers
。 - 创建工人文件(如果它不存在)。工人档案大致如下
示例工人文件:
ps=/
worker.list=worker1,worker2,...
# worker1 definition
worker.worker1.port=8009
worker.worker1.host=192.168.1.23
worker.worker1.type=ajp13
# worker2 definition
....
每个工人都可以指向不同的 tomcat 服务器。端口必须与配置到 $CATALINA_HOME/conf/server.xml
中的端口相同。在这个文件中有一个 AJP 协议的连接器:
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
每个工人都必须指向这个端口。
最后,您可以使用 JkMount workerName
将虚拟主机、位置等配置到 Apache 中,以指示 Apache 此 url 必须转发给适当的工作人员。
文档中有很多示例。这里有 Tomcat 官方文档:https://tomcat.apache.org/connectors-doc/webserver_howto/apache.html
希望对您有所帮助!
编辑
如果您使用的是 MS Windows,您可以从这里下载 mod_jk
url https://tomcat.apache.org/download-connectors.cgi
按照建议安装和配置。由于你要映射这个 url http://localhost/sample to tomcat app in http://localhost:8080/sample 你的配置必须如下:
workers 文件(使用 server.xml
tomcat 配置文件 查看端口):
worker.list=worker1
# worker1 definition
worker.worker1.port=8009
worker.worker1.host=localhost
worker.worker1.type=ajp13
Apache Location 指令(查看命令,拒绝并允许以满足您的需要):
<Location /sample/>
JkMount worker1
Order deny,allow
Deny from all
Allow from localhost
</Location>