nginx代理和404重定向

Posted

技术标签:

【中文标题】nginx代理和404重定向【英文标题】:nginx proxy and 404 redirect 【发布时间】:2012-01-06 21:45:29 【问题描述】:

您好,我想将我的 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;
  



谁能帮帮我?

【问题讨论】:

【参考方案1】:

添加

proxy_intercept_errors on;

location /photos。那么即使 404 错误来自上游服务器,您的 error_page 404 /myerrorfile.jpg 也将正常工作。

【讨论】:

以上是关于nginx代理和404重定向的主要内容,如果未能解决你的问题,请参考以下文章

nginx 反向代理后为啥访问php文件 会提示404

Nginx 确实重定向,而不是代理

反向代理情况下配置nginx错误页面跳转

nginx应用 | 反向代理,统一鉴权,目录重定向

Nginx 反向代理重定向到帐户/登录

nginx 代理https到http重定向失败的问题