正如标题所说,我正在寻找在$http_host设置中使用$host
代替proxy_set_header
变量的实际差异(以及潜在的陷阱) > nginx的
当然,我已经阅读了这个问题的答案What's the difference of $host and $http_host in Nginx。但除了$host
删除端口并使小写字母外,这并没有真正解释会影响我的应用程序的情况,例如" HTTP_HOST何时不存在或者是空值" ?是在用户使用较旧的浏览器时还是在他/她通过另一个代理时?
(我使用nginx将流量路由到python烧瓶后端应用程序(也使用flask-socket.io)
答案 0 :(得分:1)
实际差异在于$host
提供了更广泛的兼容性,特别是对于过时版本的HTTP协议(例如RFC 2068)。
$host
优先于$http_host
,因为它对客户端兼容性的限制最少。而$http_host
可能对严格遵守协议的应用程序有用。