如何将应用程序从 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>