2



我希望这里有一些破解可以轻松解决我在几个论坛中搜索后遇到的问题:我需要在 Apache 2.2.x 网络服务器后面放置一个 Glassfish v3 应用程序服务器,因为我的虚拟主机提供了一些部分,例如 webmail ,正在网络服务器上运行(所以我无法关闭它)。因此,我决定使用更新的解决方案“mod_proxy_ajp”(随 Apache 一起提供)而不是更复杂的“mod_jk”来通过 Apache 将请求传递给 Glassfish。到目前为止,我所做的是:

Apache 包含“/etc/httpd/conf.d/proxy_ajp.conf”,其中包含:

  • LoadModule proxy_ajp_module 模块/mod_proxy_ajp.so
  • 代理通行证/邮件!
  • ProxyPass / ajp://localhost:8080/
  • ProxyPassReverse / ajp://localhost:8080/

玻璃鱼:

  • http-listener-1 正在侦听 8080 并启用了“JK 侦听器”
  • http-listener-2 正在监听 8181 并使用我的 SSL 证书启用了安全性

但我想做的是:

  1. 将“https://webmail.mydomain.com”的所有请求路由到 Apache(webhoster 电子邮件 web-frontend)
  2. 将所有其他 HTTP 和 HTTPS 请求路由到 Glassfish。对于在 8080 或 8009 上对我的 Glassfish http-listener-1 的 HTTP,对于使用我在 8181 上的 Glassfish http-listener-2 注册的 SSL 证书的 HTTPS(在两个方向上,传递和反向这些端口不应该对用户可见)
  3. 要么强制对 Glassfish 的所有请求重定向/切换到 HTTPS,要么基于特定资源的 web.xml 安全配置(somefile.html)强制从 HTTP 切换到 HTTPS(或执行此操作的任何其他解决方案)

如果有人可以提供解决这 3 个任务的简短描述,我会非常高兴,因为我对 Java Web 管理的了解并不深入。
在此先感谢和欢呼
~limubai

4

1 回答 1

4

这是很多问题!听起来您正在尝试通过 Apache 代理 GlassFish,以便用户可以在标准端口(80 和 443)上访问您的应用程序,并且您有多个应用程序、多个域,并且您想使用 SSL。

那么,你有很多工作要做!您可能需要研究 Apache 上的虚拟主机;特别是 webmail.mydomain.com 的一个虚拟主机和 mydomain.com 的另一个虚拟主机。

如果您的网络服务器上没有两个 IP 地址(两个 NIC),那么您将不得不使用基于名称的虚拟主机。请注意,基于名称的虚拟主机和 SSL 不能轻松协同工作;您可能必须使用通用名称 mydomain.com 和别名 webmail.mydomain.com(altSubjectName 扩展名)的 SSL 证书。

可以在此处找到有关配置 Apache 的信息:

http://httpd.apache.org/docs/2.2/vhosts/

可以在此处找到有关使用 SSL 的基于名称的虚拟主机的信息:

http://wiki.apache.org/httpd/NameBasedSSLVHosts

可以在此处找到有关配置 GlassFish 的信息:

http://download.oracle.com/docs/cd/E18930_01/html/821-2416/gfaad.html

于 2011-09-01T16:32:48.813 回答