我有一个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