Nginx指定404错误页面方法

Nginx指定404页面的方法:

404页面分为三种(小编认为目前知道三种,有(ma)待(la)考(ge)察(bi))

第一种:Nginx自己的错误页面

nginx访问一个静态的html 页面,当这个页面没有的时候,nginx抛出404,那么如何返回给客户端404呢?看下面的代码

这种情况下不需要修改任何参数,就能实现这个功能。

server {
    listen      80;
    server_name  a.b.com;
        root   /var/www/error_html;
        index  index.html index.htm;

    location / {
    }

    # 定义错误页面码,如果出现相应的错误页面码,转发到那里。
    error_page  404 403 500 502 503 504  /404.html;
    # 承接上面的location。
    location = /404.html {
    # 放错误页面的目录路径。
        root   /usr/share/nginx/html;
    }
}

第二种:反向代理的错误页面

如果后台tomcat处理报错抛出404,想把这个状态叫nginx反馈给客户或者重定向到某个连接,代码如:

upstream www {
                   server 192.168.1.201:7777  weight=20 max_fails=2 fail_timeout=30s;
                                      ip_hash;
                                                                  }
server {
            listen       80;
            server_name www.a.com;
                        root   /Disk/var/www/index;
                        index  index.html index.htm;

location / {
        if ($request_uri ~* ‘^/$‘) {
                rewrite .*   http://www.a.com/index.html redirect;
        }
        # 关键参数:这个变量开启后,我们才能自定义错误页面,当后端返回404,nginx拦截错误定义错误页面
        proxy_intercept_errors on;
        proxy_pass      http://www;
        proxy_set_header HOST   $host;
        proxy_set_header X-Real-IP      $remote_addr;
        proxy_set_header X-Forwarded-FOR $proxy_add_x_forwarded_for;
                      }
error_page    404  /404.html;
location = /404.html {
root   /usr/share/nginx/html;
}
}

第三种:nginx解析php代码的错误页面

如果后端是php解析的,需要加一个变量

在http段中加一个变量 fastcgi_intercept_errors on;就可以了

指定一个错误页面:

error_page    404  /404.html;
location = /404.html {
root   /usr/share/nginx/html;
}

指定一个url地址:

error_page 404  /404.html;
error_page 404 = http://www.a.com/error.html;

关于fastcgi_intercept_errors和proxy_intercept_errors的介绍详细见如下文章:

http://xinsir.blog.51cto.com/5038915/1956550

时间: 2024-11-05 17:21:35

Nginx指定404错误页面方法的相关文章

nginx指定404错误页面跳转

需求: 修改配置文件进行跳转: server {         listen       80;         server_name shadouyou.com www.shadouyou.com;             if ($host = 'shadouyou.com' ) {         rewrite ^/(.*)$ http://www.shadouyou.com/$1 permanent;                 }         root   /Disk/v

NGINX 配置404错误页面转向

什么是404页面 如果碰巧网站出了问题,或者用户试图访问一个并不存在的页面时,此时服务器会返回代码为404的错误信息,此时对应页面就是404页面.404页面的默认内容和具体的服务器有关.如果后台用的是NGINX服务器,那么404页面的内容则为:404 Not Found 为什么要自定义404页面 在访问时遇到上面这样的404错误页面,我想99%(未经调查,估计数据)的用户会把页面关掉,用户就这样悄悄的流失了.如果此时能有一个漂亮的页面能够引导用户去他想去的地方必然可以留住用户.因此,每一个网站都

nginx自定义404错误页面

在Nginx环境下配置自定义的404错误页面转向,避免给用户展示生硬.不友好的错误信息.可以给出如下提示:很抱歉,您访问的页面不存在或已被删除. 注意事项: 一.修改nginx.conf之前做好备份,避免出现问题. 二.定义页面时注意路径是否正确. ①首先创建一个404错误时显示的页面,如放在你的网站根目录下的404.html.(内容随便) ②在nginx.conf中的http区域加入fastcgi_intercept_errors on: http { ... fastcgi_intercep

Ubuntu nginx 配置404错误页面

1.创建自己的404.html页面: 2.更改nginx.conf在http定义区域加入: /etc/nginx# vim nginx.conf 下添加 fastcgi_intercept_errors on; http{ ...... fastcgi_intercept_errors on; ...... } 3.更改/etc/nginx/sites-enabled/default 文件 #error_page 404 /404.html; 改为 error_page 404 = /404.h

nginx下配置404错误页面

1.创建自己的404.html页面,并放于网站根目录. 2.更改nginx.conf在http定义区域加入: fastcgi_intercept_errors on; 3.更改nginx.conf(或单独的网站配置文件) 在server 区域加入: error_page 404 /404.html 或者 error_page 404 http://www.xxx.com/404.html(不建议用这个绝对路径,有人反映会返回200,但是我测试是可以的,两边不要=) 4.测试nginx.conf正

Nginx配置error_page 404错误页面

问题由来 昨天一网友在segmentfault.com上提问,无法做404重定向 打开对方的网站随便输入一个错误的地址发现给出了404代码,但是页面完全空白,并没有显示404页面的设定内容 当时就明白啥情况了,只要在nginx.conf配置文件上加上一句 fastcgi_intercept_errors on,就可以了 如果没这句的不管是error_page 还是nginx自带的404跳转都不能正常显示(访问不存在的php页面时可能会显示“No input file specified.”) 什

【转贴】Linux系统NGINX负载均衡404错误处理方法

NGINX负载均衡404错误处理方法 使用NGINX 实现负载均衡,但一组服务器的数据不是实施同步,主服务器有了数据要过段时间才同步到其他服务器 upstream   image.stream.com   { server 192.168.1.25:8088; server 192.168.1.24:8088; server 192.168.1.23:8088; } 用户访问图片的时候,就有60% 的几率显示为找不到文件. 问题: 怎么配置成以下功能: 1.连接图片服务器时,如果说浏览的机器在2

asp.net中当服务器出错时显示指定的错误页面

http://blog.csdn.net/helloxiaoyu/article/details/2943537 此篇文章描述了当异常再ASP.NET中发生时怎样使用C#.NET代码去拦截和相应异常.ASP.NET在异常处理方面比传统的ASP更优越.在ASP.NET中,允许在应用程序的各个层面中处理异常.ASP.NET的新特性ASP.NET为捕获并处理异常提供了更多的便利.在传统的ASP程序中,我们用“On Error Resume Next”(或Jscript的Try-catch)来处理异常.

LNMP设置404错误页面

LNMP即Linux+Nginx+MySQL+PHP的web架构.     1.在网站的根目录touch 文件404.html,内容如下: <html> <body><H1>404 NOT FOUND!</H1></body> </html> 2.chmod 755  404.html chown www:www   404.html 3.修改nginx配置文件nginx.conf: 在http {}区域添加上:fastcgi_int