我正在pipe理一个设置,在nginx反向代理之后有两个ngnix应用程序服务器。 我想设置一些标题,如X-XSS-Protection或Strict-Transport-Security 。 目前,它在应用程序服务器和负载平衡器上都被设置,这导致标题变得复杂。
Error parsing header X-XSS-Protection: 1; mode=block, 1; mode=block: expected semicolon at character position 14. The default protections will be applied.
我可以看到重复的标题值被附加到相同的标题关键字。 我的问题是:设置标题的一般惯例/最佳做法是什么? 我应该在后端设置标题并将它们从负载平衡器中移除,或者负载平衡器应该是一个设置标题?
在我看来,标题的设置并不重要。 在Nginx中设置头文件的好处在于,与更改代码,部署等相比,它们的确很容易修改。我有两种情况,我不得不使用Nginx或F5负载平衡器来重写头文件,给予更多的灵活性。
您需要举一个更具体的例子来获取更多有用的信息,因为您的问题太广泛了。
作为一名开发人员,我也会考虑开发环境。
在我们的生产环境中,我们只有一个负载平衡器,而我们的主要的preprod环境和开发环境在它们前面没有负载平衡器。 出于这个原因,我更喜欢在NGinxnetworking服务器中设置标题,所以它们也被设置为开发环境。
这也取决于您是否终止HTTPS:在负载平衡器上还是在Nginx上,或两者兼而有之? 出于同样的原因(保持环境一致),为了更好的安全性,我们在负载均衡器处终止HTTPS,然后在负载均衡器和我们的Web服务器之间重新encryptionHTTPSstream量,所以如果我们直接连接到Web服务器, HTTPS。
如果您的NGinxnetworking服务器不在HTTPS上,那么某些头文件(HSTS)当然不应该在networking服务器上设置,但是这显然会引入一些问题,如何在不设置这些头文件的情况下开发和testing这些头文件的影响没有负载平衡器。
是的,因为这是连接前端处理连接的工作。 你的应用程序忙于自己的事情,最好是把所有的资源都做好。 SSL / TLS,常见的标题,redirect,平衡,阻塞,下降等最好的处理之前,它击中应用程序。 它也给了configuration的一个好的共同点作为奖金。