【问题标题】:Apache mod proxy ajp for multiple glassfish domains用于多个 glassfish 域的 Apache mod 代理 ajp
【发布时间】:2012-11-08 23:57:03
【问题描述】:
我只能找到有关 mod_jk 的信息,但我认为我不能是唯一一个想要这样做的人,希望有人已经这样做了。
我有一个 apache httpd 服务器,它已经有代理 ajp 通过端口 8009 连接到 glassfish 3.1.2 域。我想在同一个 glassfish 服务器上添加更多具有不同代码的域,并将 httpd 代理设置为好吧。
由于缺乏信息,我什至不知道从哪里开始。这是在 VPS 上运行的,我将/将在 apache2 上使用虚拟域。
【问题讨论】:
标签:
apache
proxy
glassfish-3
ajp
【解决方案1】:
我遇到了同样的问题,我想其他人也会。
这是我的解决方案:
您需要在 glassfish 上创建虚拟服务器,设置正确的根模块并使用完整的 url 转发您的请求。
-
创建特定的虚拟服务器
-
在 Glassfish 管理界面中,转到
配置 > 服务器配置(默认)> 虚拟服务器
选择新的
- 填写值
- Id:虚拟服务器的名称,我用的和host一样(my.sample.com)
- hosts:您要映射的域 (my.sample.com)
- 网络侦听器:域将侦听哪些端口 (http-listener1)
- 默认 Web 模块:您的模块 (mysuperapp_R1.1)
确保您的应用已部署到配置(默认为服务器配置)并且您的域解析到服务器。
您可以通过访问 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 即可:)