nginx反向代理域名访问需要加/index.html后缀的问题
时间: 2023-11-29 17:05:25 浏览: 215
如果你的 Nginx 反向代理某个域名时,需要在 URL 后面加上 `/index.html` 才能正常访问,可能是因为代理的目标服务器没有正确配置 index 文件的原因。
你可以尝试在 Nginx 的反向代理中添加以下配置来解决这个问题:
```
location / {
proxy_pass http://your-upstream-server;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 添加以下配置
proxy_set_header Accept-Encoding "";
sub_filter_types *;
sub_filter '<head>' '<head><base href="'http://your-upstream-server'" />';
sub_filter '</head>' '<base href="'http://your-upstream-server'" /></head>';
sub_filter_once off;
}
```
这个配置中,我们使用了 `sub_filter` 模块来修改代理服务器返回的 HTML 内容,将 `<head>` 标签中添加一个 `base` 标签,让浏览器能够正确地解析相对路径。
另外,我们也设置了 `proxy_set_header Accept-Encoding "";` 来关闭浏览器与 Nginx 之间的压缩传输,以便 `sub_filter` 能够正确地处理 HTML 内容。
阅读全文