简体   繁体   English

nginx代理和404重定向

[英]nginx proxy and 404 redirect

Hi I would like configure my nginx server to proxy for amazon S3 and do something like mod_rewrite in apache - if proxy for amazon is 404 (file does'nt exist on amazon) then redirect me to my local file. 嗨,我想配置我的nginx服务器代理亚马逊S3并在apache中执行类似mod_rewrite的事情 - 如果亚马逊的代理是404(文件不存在于亚马逊上)然后将我重定向到我的本地文件。 It's possibble to do ? 这可能吗?

This is my nginx config file: 这是我的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;
  }


}

Can anyone help me ? 谁能帮我 ?

Add

proxy_intercept_errors on;

to location /photos . location /photos Then your error_page 404 /myerrorfile.jpg will work even when the 404 error comes from the upstream server. 然后你的error_page 404 /myerrorfile.jpg即使404错误来自上游服务器也能正常工作。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM