我一直试图在Glassfish上挣扎,而且不断出现的一件事就是使用Apache面向Glassfish的“操作方法”。不幸的是,我还没有找到你为什么要这样做的描述!
从我的实验中,Glassfish看起来像一个功能齐全的Web服务器类型的服务;但我可能会错过很多。那么,前端Glassfish的概念更多是将其与现有架构集成的解决方案,还是前端(在纯Java环境中)提供了额外的好处?
答案 0 :(得分:3)
还有另一个有效的用例,说明为什么我们将Glassfish与Apache一起使用。此实例中的Apache将充当反向代理,以提高Glassfish的安全性。 RP配置为仅允许将某些URL传递到应用程序服务器。例如,您可能在Glassfish中部署了app contexts / myApp和/ myPrivApp。在RP服务器中,您只需将/ myApp配置为传递给Glassfish。请求/ myPrivApp的任何人都会看到404'cos请求在RP级别停止。
在我的一个部署中,我部署了一堆WAR,一些用于来自互联网的用户,一些仅用于内部网。我有2个RP运行,一个用于Internet用户,另一个用于Intranet。我将Internet RP配置为仅允许已批准的Internet应用程序的URL通过,而Intranet用户可以查看所有内容。
希望有所帮助。
答案 1 :(得分:2)
它通常用于加快速度。由于apache是一个非常快速的Web服务器,因此它用于传递静态内容。像图像,CSS文件等。 Glassfish在这种情况下提供动态内容(servlet,JSP)。
答案 2 :(得分:2)
使用Apache作为Glassfish前端的另一个原因是可以在Glassfish集群中提供负载平衡。有关详细信息,请参阅http://tiainen.sertik.net/2011/03/load-balancing-with-glassfish-31-and.html。
答案 3 :(得分:0)
另一个原因是,玻璃鱼不能(很容易)在80号港口运行,当然没有赋予它根权利。 因此,对于大多数用户来说,在apache之前运行代理(apache,nginx,varnish)更容易,并且两个服务器都在普通用户下运行。
然后,您还可以获得前端的一些配置选项。像其他提到的那样,例如缓存。