我只能找到有关 mod_jk 的信息,但我认为我不能是唯一一个想要这样做的人,希望有人已经这样做了。
我有一个单一的 apache httpd 服务器,它已经有代理 ajp 通过端口 8009 连接到 glassfish 3.1.2 域。我想在同一个 glassfish 服务器上添加更多具有不同代码的域,并拥有 httpd 代理。
由于缺乏信息,我什至不知道从哪里开始。这是在 VPS 上运行的,我将/将在 apache2 上使用虚拟域。
我只能找到有关 mod_jk 的信息,但我认为我不能是唯一一个想要这样做的人,希望有人已经这样做了。
我有一个单一的 apache httpd 服务器,它已经有代理 ajp 通过端口 8009 连接到 glassfish 3.1.2 域。我想在同一个 glassfish 服务器上添加更多具有不同代码的域,并拥有 httpd 代理。
由于缺乏信息,我什至不知道从哪里开始。这是在 VPS 上运行的,我将/将在 apache2 上使用虚拟域。
我遇到了同样的问题,我想其他人也会。
特此我的解决方案:
您需要在 glassfish 上创建虚拟服务器,设置正确的根模块并使用完整的 url 转发您的请求。
创建特定的虚拟服务器
在 Glassfish 管理界面中,转到
配置 > 服务器配置(默认) > 虚拟服务器
选择新的
- id:虚拟服务器的名称,我使用与主机相同的名称(my.sample.com)
- 主机:您要映射的域(my.sample.com)
- 网络侦听器:域将侦听哪些端口(http-listener1)
- 默认 Web 模块:您的模块(mysuperapp_R1.1)
确保您的应用程序已部署到配置(默认为 server-config),并且您的域解析到服务器。您可以通过访问http://my.sample.com:8080/轻松测试您的设置(假设应用程序在 8080 上运行)。您的应用程序应该可以运行。
2)在apache中转发请求。(在 debian 上,但对于其他发行版应该类似),在 /etc/apache2/sites-available 中创建一个 my.sample.com 文件(可以是任何东西,但这非常明确),其中包含以下内容(更改域名当然)
<VirtualHost *:80>
ServerName my.sample.com
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
<Location />
ProxyPass http://my.sample.com:8080/
ProxyPassReverse http://my.sample.com:8080/
</Location>
</VirtualHost>
启用配置并重新加载 apache(在 Debian 上,以下命令应该可以工作)
a2ensite my.sample.com
/etc/init.d/apache2 reload
由于我与 Primefaces GMap 模块发生冲突,我没有使用 AJP。当然,从代理更改为 AJP 并不是难事。只需确保还为虚拟服务器选择了启用 JK 的网络侦听器。
如何在 apache 上启用 mod-proxy 或 mod ajp 代理,只需 google 即可:)