我有一个 GlassFish 实例,在不同端口上运行不同的服务。GlassFish 前面有一个 Apache Web 服务器,我想在 Apache 上设置虚拟主机以重定向到 GlassFish 服务器上的某些端口。
我已将 Tomcat AJP 添加为 jvm 选项来监听端口 8009,并将必要的 .jar 放在 lib/ 下。
如何配置 GlassFish 从端口 8009 重定向到同一实例上的给定端口(服务)?
答案1
我建议不要使用 ajp,而是使用 mod_proxy。我自己也这样做过,而且非常成功。我设置内容的方式是,只需配置一个虚拟域来指向一个目录,然后创建一个 .htaccess 文件,如下所示:
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
当然,请进行修改以匹配您的 HTTP 端口。在 tomcat(我使用的)中,我还在 conf 下的 server.xml 中进行编辑。对于端口 8080 上的连接器,我将 proxyName 设置为与虚拟主机匹配,并将 proxyPort 设置为 80。
我应该补充一点,我在配置中使用动态虚拟主机,我的站点配置(我使用 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 文件
答案2
您可以使用 Apache 指向几种不同类型的服务器。
# 将我放入 conf.d 中名为 my_proxies.conf 的文件中 # Apache 获取 conf.d/*.conf 中的所有内容 名称虚拟主机 *:80 <虚拟主机 *:80> # 此 Apache 提供图像和 cgi-bin ProxyPass /图像! ProxyPass /cgi-bin ! # # 在此服务器上获取了内容(Jetty、Glassfish、Tomcat 或 Apache) # ProxyPass /foo http://localhost:8080/foo ProxyPassReverse /foo http://localhost:8080/foo 重定向/foo http://localhost:8080/foo 错误日志 /tmp/foo_error_log 自定义日志 /tmp/foo_access_log # # 根目录最后 # 让我们把主应用程序放在它自己的特殊服务器上 # 代理通行证 / http://localhost:9090/ ProxyPassReverse / http://localhost:9090/ 错误日志 /tmp/bar_error_log 自定义日志 /tmp/bar_access_log # </虚拟主机>
答案3
我建议您使用 Apache 模块 mod_loadbalancer,它是专门为与 Glassfish 应用服务器一起使用而实现的,能够对从管理控制台启动的 Glassfish 应用服务器配置命令做出反应。
参见示例 -https://blogs.oracle.com/kshitiz/entry/load_balancer_plugin_in_glassfish