如何将Apacheredirect到GlassFish服务器上的不同端口?

我有一个GlassFish实例在不同的端口上运行不同的服务。 Apache Web服务器位于GlassFish之前,我想在Apache上设置虚拟主机以redirect到GlassFish服务器上的某些端口。

我已经添加了Tomcat AJP作为jvm选项来监听端口8009,并在lib /下放置必要的.jars。

如何将GlassFishconfiguration为从8009端口redirect到同一实例上的给定端口(服务)?

我会build议使用mod_proxy,而不是使用ajp。 我自己也做了很大的成功。 我有我的东西设置的方式,我只是configuration一个虚拟域指向一个目录,并创build一个.htaccess文件,如下所示:

ProxyPass / http://localhost:8080/ ProxyPassReverse / http://localhost:8080/ 

当然,更改为匹配您的HTTP端口。 在tomcat(我使用),我也编辑在conf下的server.xml。 对于端口8080上的连接器,我将proxyName设置为匹配虚拟主机,将proxyPort设置为80。

我应该添加一个说明,我正在使用dynamic虚拟主机进行configuration,我的站点configuration(我使用debian)在/ etc / apache2 / sites-available看起来像这样:

 <VirtualHost IP> Servername yourdomain.com ServerAlias *.yourdomain.com UseCanonicalName Off LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon CustomLog /var/www/yourdomain.com/logs/custom.log vcommon ErrorLog /var/www/yourdomain.com/logs/error.log TransferLog /var/www/yourdomain.com/logs/access.log RewriteLog/var/www/yourdomain.com/logs/rewrite.log RewriteLogLevel 2 VirtualDocumentRoot /var/www/yourdomain.com/sites/%1/html VirtualScriptAlias /var/www/yourdomain.com/sites/%1/cgi-bin LogLevel debug <Directory /var/www/yourdomain.com/sites/> AllowOverride All </Directory> </VirtualHost> 

这意味着,stackoverflow.yourdomain.com将去/var/www/yourdomain.com/sites/stackoverflow/html

我知道你没有要求最后一部分,我只是提供了一个完整的概述了我的设置,以及如何使用ProxyPass和ProxyPassReverse适合.htaccess文件

您可以使用Apache指向几个不同types的不同服务器。

 #把我放在conf.d文件中,名为my_proxies.conf
 #Apache在conf.d / *。conf中提取所有东西

 NameVirtualHost *:80

 <VirtualHost *:80>

 #这个Apache提供图像和cgi-bin
 ProxyPass /图像!
 ProxyPass / cgi-bin!                                        
 #                            
 #有这个服务器上的东西(Jetty,Glassfish,Tomcat或Apache)
 #
 ProxyPass / foo http:// localhost:8080 / foo
 ProxyPassReverse / foo http:// localhost:8080 / foo
redirect/ foo http:// localhost:8080 / foo
 ErrorLog / tmp / foo_error_log
 CustomLog / tmp / foo_access_log
 #
 #根源最后
 #让我们把我们的主要应用程序在自己的专用服务器上
 #
 ProxyPass / http:// localhost:9090 /
 ProxyPassReverse / http:// localhost:9090 /
 ErrorLog / tmp / bar_error_log
 CustomLog / tmp / bar_access_log
 #
 </虚拟主机>

我build议你使用一个Apache模块mod_loadbalancer,它专门用于Glassfish应用服务器,能够对从pipe理控制台启动的Glassfish应用服务器configuration命令做出反应。

查看示例 – https://blogs.oracle.com/kshitiz/entry/load_balancer_plugin_in_glassfish