Nginx实现404页面的几种方法,你知道几种?

服务器
一个网站,肯定是避免不了404页面的,通常使用Nginx作为Web服务器时,有以下集中配置方式,一起来看看。

一个网站,肯定是避免不了404页面的,通常使用Nginx作为Web服务器时,有以下集中配置方式,一起来看看。

***种:Nginx自己的错误页面

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

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

server { 
    listen      80; 
    server_name  www.test.com; 
        root   /var/www/test; 
        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; 
    } 

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.

[[219872]]

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

如果后台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.test.com; 
    root   /var/www/test; 
    index  index.html index.htm; 
  
    location / { 
        if ($request_uri ~* '^/$') { 
                    rewrite .*   http://www.test.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; 
    } 

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.

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

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

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

  • 指定一个错误页面:
error_page    404  /404.html; 
location = /404.html { 
    root   /usr/share/nginx/html; 

  • 1.
  • 2.
  • 3.
  • 4.
  • 指定一个url地址:
error_page 404  /404.html; 
 
error_page 404 = http://www.test.com/error.html; 
  • 1.
  • 2.
  • 3.
责任编辑:武晓燕 来源: Python运维圈
相关推荐

2024-05-10 07:44:23

C#进程程序

2021-05-07 16:19:36

异步编程Java线程

2009-09-18 12:29:55

2010-04-30 16:22:07

Unix终端

2009-09-09 11:24:46

PHP实现MVC

2024-02-26 08:04:38

ReactReact.js场景

2015-11-26 09:47:22

WiFiWiFi技术

2021-06-08 11:42:12

Pandas数据分析Python

2023-12-27 12:12:35

NumPy函数数组

2024-09-20 08:04:54

2009-12-02 20:02:18

PHP实现页面跳转

2020-11-16 09:15:07

MYSQL

2024-08-01 09:58:33

API性能机制

2009-09-04 11:20:47

ASP.NET页面间值

2021-11-05 21:36:59

JavaScript语言开发

2010-05-17 15:17:06

MySQL常用操作

2009-06-09 11:19:49

2010-06-03 08:55:43

LINQ

2013-08-21 11:31:21

iPhone图片方法

2024-06-03 08:26:34

Android开发监听器
点赞
收藏

51CTO技术栈公众号