关键CloudFoundry上的Nginx/Apache2 httpd和Tomcat 7
在CloudFoundry上的Tomcat实例前面配置web服务器的最佳方法是什么 我的任务是研究将web服务器放在PCF上Tomcat实例前面的最佳方法。主要用于重写URL(尝试从多站点应用程序的URL中删除应用程序上下文路径) 我遇到的主要问题是,除了作为java构建包的一部分捆绑的嵌入式web服务器(Jetty),它不包含任何其他web服务器NGINX或Apache2。我认为这是现有应用程序中非常常见的场景。我知道静态文件buildpack包含NGINX,PHP buildpack包含Apache2——这是否意味着我必须分叉java buildpack并定制buildpack以满足我的需要 另外,我如何修改httpd.conf?方法是否与文档相同?基本上是在.my customized buildpack/httpd(或nginx)/*.conf下添加配置文件 在CloudFoundry上的Tomcat实例前面配置web服务器的最佳方法是什么 这不适用于海报,但对于其他读者来说,考虑为什么要这样做是至关重要的。如果您只是在寻找负载平衡,您不需要这样做。CF平台自动处理负载平衡,这就是Java构建包在默认情况下不添加Nginx或Apache HTTPD的原因 主要用于重写URL(尝试从多站点应用程序的URL中删除应用程序上下文路径) 你考虑过这个问题吗。这是一种非常好的重写URL的方法,无需另一台服务器。它也存在了很长一段时间,并经过了战斗考验 另一种选择可能是使用()。这是CF平台提供的一种功能,允许您拦截传入请求并进行调整。它类似于JavaServlet过滤器,但位于更高的层。你只需要有第二个应用程序,它的作用类似于过滤器,平台处理到“过滤器”应用程序和你的原始应用程序的路由请求。上面的链接更详细地解释了这一点 话虽如此,我仍然建议您通过路由服务重新设置过滤器,只要过滤器对您有效,因为过滤器是一种重量较轻的解决方案 您还可以查看构建包的分叉/定制,但这更为复杂,并且它有持续的维护负担(您现在必须使构建包分叉保持最新) 我遇到的主要问题是,除了作为java构建包的一部分捆绑的嵌入式web服务器(Jetty),它不包含任何其他web服务器NGINX或Apache2 虽然这在CF之外很常见,但在CF中通常不需要。平台本身提供负载平衡,这是进行这种设置的主要原因。在CF上,如果您还添加了Nginx或apachehttpd,那么在请求路径中会出现额外的不必要的跃点 默认情况下:浏览器->负载平衡器->gorouters->你的应用程序(tomcat/jetty) 你想做什么:浏览器->负载均衡器->gorouters->Nginx/HTTPD->你的应用程序(tomcat/jetty) 此外,该平台更适合于做出负载平衡决策,因为它知道什么时候可以放大和缩小应用程序实例 请仔细考虑是否需要增加这个额外的跳数。它增加了延迟、复杂性和另一个可能的故障向量 我知道静态文件buildpack包含NGINX,PHP buildpack包含Apache2 Nginx和HTTPD包含在这些构建包中,因为它是通过HTTP提供内容的主要方式。较新版本的PHP有一个内置的web服务器,但不建议在生产中使用,因此我们仍然依赖Nginx或HTTPD来处理HTTP请求并将它们传递给PHP(通过FastCGI) 另外,我如何修改httpd.conf?方法是否与文档相同?基本上是在.my customized buildpack/httpd(或nginx)/*.conf下添加配置文件 对不起,我不明白你的问题。您说您使用的是上面的Java应用程序,因此不会有任何HTTPD或Nginx配置。您是否正在尝试分叉和定制Java构建包?如果是这样的话,这可能值得提出自己的问题 希望有帮助关键CloudFoundry上的Nginx/Apache2 httpd和Tomcat 7,tomcat,nginx,apache2,cloud-foundry,Tomcat,Nginx,Apache2,Cloud Foundry,在CloudFoundry上的Tomcat实例前面配置web服务器的最佳方法是什么 我的任务是研究将web服务器放在PCF上Tomcat实例前面的最佳方法。主要用于重写URL(尝试从多站点应用程序的URL中删除应用程序上下文路径) 我遇到的主要问题是,除了作为java构建包的一部分捆绑的嵌入式web服务器(Jetty),它不包含任何其他web服务器NGINX或Apache2。我认为这是现有应用程序中非常常见的场景。我知道静态文件buildpack包含NGINX,PHP buildpack包含Ap