我需要将 nginx 设置为托管在 DO 空间(S3 类型对象存储)上的静态站点的反向代理。
他们的 s3 的问题是,如果我请求一个没有任何特定文件名的路径名,那么它不会将 index.html 作为默认值(这是我们所期望的)
如果我请求 s3.example.com/some/path/ 那么它会给出一个错误,而不是在该文件夹中提供 index.html。DO 知道这个问题,但不会很快解决它。
我们陷入困境是因为我们花了很多时间和精力迁移到 DO。我们所有的路径都是这种格式,因为我们正在从其他设置迁移。我们希望 s3.example.com/some/path/ 加载 s3.example.com/some/path/index.html - 这是正常的 Web 服务器行为。
nginx 可以作为反向代理提供帮助吗?在任何情况下,我们都将在子域前面使用反向代理并执行 proxy_pass 即 example.com/some/path/ 将 proxy_pass 到 s3.example.com/some/path/ - 这是使用普通 proxy_pass
我想知道我们是否可以在执行 proxy_pass 时添加 index.html - 但仅适用于没有任何文件名的请求。对于那些具有与其相关联的文件名的请求,例如 example.com/som/path/image.jpg 或其他 html 或其他文件,那么我们当然不想添加 index.html。
问题是很多时候在 url 中没有结尾 / url 就像 1 example.com/some/path 或者像 2 example.com/some/path/
在其他一些情况下,它将是 3 example.com/some/path/ex.html (或 jpg 或其他)
在第一种情况下,我们要添加 index.html 在第二种情况下 /index.html 在第三种情况下什么都没有
在这种情况下,配置会是什么样子?
先感谢您...
您可以重写每个在最后一个路径元素中以 a 结尾
/
或不包含 a的 URI.
,然后再将其传递给上游服务器。例如:
有关详细信息,请参阅此文档。