我们有一个haproxy用作配置SSL的负载平衡器,它位于nginx服务静态文件的前面。显然,nginx不是从上游Haproxy设置的X-Forwarded
标头继承信息。
例如:
curl https://[domain]/folder
-> HAProxy [ssl]
-> NGINX [non-ssl]
,where/folder正在使用index.html
文件。
nginx然后执行301
重定向到http://[domain]/folder/
,而应将重定向到https://[domain]/folder/
。
在express.js中, trust proxy
配置指示该应用在面向前的代理后面,并使用X-Forwarded-*
标头确定原始协议信息。
nginx中是否有类似的trust proxy
配置?
事实证明,nginx将任何请求重定向到没有落后斜线的文件夹。可以通过使用try_files
而不是index
模块来避免这种情况。
而不是index index.html index.htm;
使用try_files $uri $uri/index.html $uri/index.htm;
。