嗨,我想将我的 nginx 服务器配置为代理 amazon S3 并在 apache 中执行类似 mod_rewrite 的操作-如果 amazon 的代理为 404(亚马逊上不存在文件),则将我重定向到我的本地文件。有可能吗?
这是我的 nginx 配置文件:
upstream app{
server 127.0.0.1:3000;
}
server {
listen 0.0.0.0:80;
server_name www.mypage.com mypage.com;
access_log /var/log/nginx/mypagecom.log;
location /photos{
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://amazons3.mypage.com/photos;
proxy_redirect off;
error_page 404 /myerrorfile.jpg;
}
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://app;
proxy_redirect off;
}
}
谁能帮我 ?
最佳答案
添加
proxy_intercept_errors on;
至
location /photos
.那么你的 error_page 404 /myerrorfile.jpg
即使 404 错误来自上游服务器也能正常工作。
关于mod-rewrite - nginx 代理和 404 重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8278808/