我已经配置了带有proxy_pass
的nginx来代理/uploads/foo.png
这样的URL,以便从S3桶中获取,但显然丢失文件会导致丑陋的XML错误,我希望返回一个静态HTML文件。
我尝试使用S3的“静态网站”功能,但它总是返回(不正确的)403状态码和错误文档,而且似乎没有办法通过proxy_pass
来改变这一点。
由于各种原因,使用nginx服务器上的本地文件不是一个选项,这个nginx示例 * 只 * 做代理。
我可以让nginx从代理的S3 bucket重新请求错误文档吗?
1条答案
按热度按时间gdx19jrr1#
是的。首先将404.html放入您的S3存储桶中。然后按如下方式配置您的位置块:
proxy_intercept_errors
将告诉nginx处理代理响应中的错误代码。error_page
将通过在内部将请求更改为/uploads/404.html
来处理S3错误代码最后,您现有的
location /uploads
块将从代理服务器获取404文档!假设您甚至可以从不同的来源获取错误文档: