所以我在/api/
下有一个内部API服务器命名空间,我希望使用proxy_pass
将所有其他请求传递到Amazon S3静态站点。这一切都很好,只是因为亚马逊正在服务单页应用程序,我想总是返回相同的HTML文件。他们用S3服务器这样做的方法是将索引和错误页面设置为同一个文件。表面看起来一切都很好,但除了/
之外的所有其他请求,S3实例返回404.我可以使用NGINX将其更改为200,然后再将其返回给客户端吗?
server {
listen 80;
server_name example.com;
location /api/ {
# serve internal app
}
location / {
proxy_pass http://example.amazonaws.com/;
# ALWAYS RETURN A 200
}
}
答案 0 :(得分:1)
您应该能够使用error_page和proxy_intercept_errors指令来实现此目的。这样的事情可以解决问题。
location / {
proxy_pass http://example.amazonaws.com/;
proxy_intercept_errors on;
error_page 404 =302 /your_html_file
}