用于多个glassfish域的Apache mod代理ajp

时间:2012-11-20 20:12:37

标签: apache proxy glassfish-3 ajp

我只能找到关于mod_jk的信息,但我认为我不可能是唯一想要这样做的人,希望有人已经这样做了。

我有一个apache httpd服务器已经有代理ajp通过端口8009连接到glassfish 3.1.2域。我想在同一个glassfish服务器上添加几个不同代码的域,并将httpd代理作为好。

由于缺乏信息,我甚至不确定从哪里开始,因此陷入困境。这是在VPS上运行的,我将/将在apache2上使用虚拟域。

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,我想其他人也会这样。

我的解决方案:

您需要在glassfish上创建虚拟服务器,设置正确的根模块并使用完整的URL转发您的请求。

  1. 创建特定的虚拟服务器

    • 在Glassfish管理界面中,转到

        

      配置> server-config(默认)>虚拟服务器

    • 选择新

    • 填写值
        

          
      • Id:虚拟服务器的名称,我使用的是主机( my.sample.com
      •   
      • hosts:您要映射的域( my.sample.com
      •   
      • 网络侦听器:域将侦听的端口( http-listener1
      •   
      • 默认网络模块:您的模块( mysuperapp_R1.1
      •   
    •   

  2. 确保您的应用已部署到配置(默认情况下为server-config),并且您的域将解析为服务器。 您可以通过转到 http://my.sample.com:8080/ 轻松测试您的设置(假设该应用程序在8080上运行)。你的应用应该正常工作。

    2)在apache中转发请求。 (在debian上,但对于其他发行版应该类似),在/ etc / apache2 / sites中创建一个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的nework-listener。

    如何在apache上启用mod-proxy或mod ajp代理,只需google for it:)