如何将 Apache 重定向到 GlassFish 服务器上的不同端口?

如何将 Apache 重定向到 GlassFish 服务器上的不同端口?

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

相关内容