宝塔的项目人员你们好,我是开源项目 zfile 的作者,有很多用户在使用宝塔的过程中遇到一些问题。
关于反向代理配置,为什么默认为 `proxy_set_header Host 127.0.0.1 server_port;`。
程序经过反向代理后,无法直接拿到客户请求的原始地址(请求头中的 Host),所以一般会通过反向代理将用户请求的 Host 请求头转发给后端程序,按照现在宝塔的默认配置,项目获取到的 Host 请求头始终是 127.0.0.1。而且这个应该是宝塔后面修改成这样了,我之前用老版本宝塔还是默认 $host,请问改成现在这样有什么原因,为什么不使用更通用的 $host(其他反代工具、CDN 加速等默认行为都是这个),虽然用户能手动修改发送域名,但是还是希望能还原默认值到 $host,或者为了兼容非标准端口访问的话,可以改为 $host server_port;
还有个就是希望增加 `proxy_set_header X-Forwarded-Proto $scheme;` 这个配置。
同理,经过反向代理后,后端程序无法知道用户通过 http 还是 https 协议访问的, 这行配置的作用是反向代理工具将用户请求的协议告诉后端,如果不添加的话,只能当做 http 处理,如一个短链处理程序,接收到 https://xxx.com/s/qw1a 请求,需要重定向到实际地址,可后端只知道路径 /a/b/c/file.name,协议需要从 X-Forwarded-Proto 获取,没有就只能默认 http,用户请求域名需要从 proxy_set_header 获取地址,拼接起来。预期应该是 https://xxx.com/a/b/c/file.name,可实际会跳转到 http://xxx.com/a/b/c/file.name,现代浏览器有安全限制,一般不允许 https 站点跳转至 http 协议,会提示不安全。
|
|