Nginx proxy and redirect 404

Hi, I would like to configure my nginx server to a proxy server for amazon S3 and do something like mod_rewrite in apache - if the proxy for amazon is 404 (the file does not exist on amazon), then redirect me to my local file. This can be done?

This is my nginx config file:

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 anybody help me?

+5
source share
1 answer

Add

proxy_intercept_errors on;

before location /photos. Then yours error_page 404 /myerrorfile.jpgwill work even if the 404 error comes from the upstream server.

+8
source

All Articles