您好我想配置我的nginx服务器代理亚马逊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;
}
}
任何人都可以帮助我吗?
答案 0 :(得分:8)
添加
proxy_intercept_errors on;
到location /photos
。然后,即使404错误来自上游服务器,您的error_page 404 /myerrorfile.jpg
也会正常工作。