Nginx实现404页面的几种方法(三种)

下面是详细的攻略:

Nginx实现404页面的几种方法(三种)

有时,当我们在访问网站时,常常会遇到一些我们没能想到的问题或者其他错误,此时我们访问的是无法路由的页面,也就是404页面。那么,如何实现一个良好的404页面呢?这就需要使用到Nginx了。本文将为大家介绍Nginx实现404页面的三种方法。

第一种方法:使用Nginx错误页面

在Nginx中,默认有一个错误页面文件夹,我们可以直接将自己定制的404页面命名为404.html,放在错误页面文件夹下。当出现404错误时,Nginx会自动找到并展示我们自定义的错误页面,以下是相关配置:

error_page 404 /404.html;
location = /404.html {
  internal;
}

配置说明:

  • error_page 404 /404.html;:当出现404错误时,Nginx会自动跳转到404页面;
  • location = /404.html {internal;}:指定了404页面的访问地址。

第二种方法:使用Nginx跳转

我们可以通过Nginx的重定向来实现404页面的跳转。以下是相关配置:

location / {
  error_page 404 = @notfound;
}

location @notfound {
  return 404;
}

error_page 404 /404.html;
location = /404.html {
  internal;
}

配置说明:

  • location / {error_page 404 = @notfound;}:当出现404错误时,会跳转到@notfound页面;
  • location @notfound {return 404;}:@notfound页面返回404错误;
  • error_page 404 /404.html;:当出现404错误时,Nginx会自动跳转到404页面;
  • location = /404.html {internal;}:指定了404页面的访问地址。

第三种方法:使用Lua脚本实现

最后一种方法是使用Lua脚本实现Nginx的404页面。首先,需要在Nginx中安装Lua模块(具体安装方法可以参考官方文档)。以下是相关配置:

error_page 404 /404;

location /404 {
  default_type text/html;
  content_by_lua_block {
    ngx.say("404 Not Found");
    ngx.exit(ngx.HTTP_OK);
  }
}

配置说明:

  • error_page 404 /404;:当出现404错误时,Nginx会自动跳转到/404页面;
  • location /404 {default_type text/html;content_by_lua_block {}}:指定了404页面的访问地址,并使用Lua脚本实现。

示例:

假设我们要访问的页面是http://localhost:8080/test,但是该页面不存在,此时就会跳转到Nginx的404页面。以下是示例演示:

  1. 使用第一种方法,首先,我们需要在Nginx的配置文件中添加相关配置:
error_page 404 /404.html;
location = /404.html {
  internal;
}
  1. 为了方便演示,我们可以将404页面定制为“这是404页面”,并将它放在错误页面文件夹下。

  2. 在浏览器中访问一个不存在的页面http://localhost:8080/test

  3. 此时,就会跳转到我们自定义的404页面。

  4. 使用第二种方法,首先,我们需要在Nginx的配置文件中添加相关配置:

location / {
  error_page 404 = @notfound;
}

location @notfound {
  return 404;
}

error_page 404 /404.html;
location = /404.html {
  internal;
}
  1. 然后,我们可以直接访问不存在的页面http://localhost:8080/test,此时Nginx会自动跳转到自定义的404页面。

  2. 使用第三种方法,我们需要在Nginx的配置文件中添加相关配置:

error_page 404 /404;

location /404 {
  default_type text/html;
  content_by_lua_block {
    ngx.say("404 Not Found");
    ngx.exit(ngx.HTTP_OK);
  }
}
  1. 使用该方法,我们直接访问不存在的页面http://localhost:8080/test,此时Nginx会跳转到Lua脚本实现的自定义404页面。

综上所述,以上就是实现Nginx的404页面的三种方法,它们各有优缺点,我们可以根据自己的实际需求进行选择。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Nginx实现404页面的几种方法(三种) - Python技术站

(3)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • nginx常用配置conf的示例代码详解

    本攻略将详细讲解“nginx常用配置conf的示例代码详解”这个主题。 什么是Nginx? Nginx是一款高性能、高并发的Web服务器和反向代理服务器。除了Web服务器和反向代理服务器之外,它还可以作为负载均衡器、邮件代理服务器和HTTP缓存服务器等。它采用事件驱动的异步非阻塞架构,可以支持非常高的并发连接数。 Nginx常用配置文件结构 在Nginx中,…

    Nginx 2023年5月16日
    00
  • 虚拟机里的nginx启动不了的问题

    问题:  之前使用虚拟机nginx一直都是正常的, 就在昨天重新配置了一下nginx(其实只注释了反向代理,别的都没动), 重启nginx, 却报错pid为空. 无法启动nginx.   而且重启之前我是使用nginx  -t 检查了OK的, 没有语法错误. 提示信息:   invalid PID number ” in “/run/nginx.pid” …

    Nginx 2023年4月13日
    00
  • Nginx实现负载均衡的项目实践

    下面是“Nginx实现负载均衡的项目实践”的完整攻略。 一、什么是负载均衡 负载均衡是将工作负载分担到多个计算资源上的一种技术,目的是提高可靠性和可用性,同时减少单个计算资源的负担。其中,负载均衡器用于分发请求到后端的多个服务器,例如Web服务器或应用服务器。 二、为何需要负载均衡 随着应用规模的扩大,单个服务器已经无法满足高并发访问带来的巨大压力。此时,通…

    Nginx 2023年5月16日
    00
  • 详解nginx websocket配置

    下面是详解 “nginx websocket 配置” 的完整攻略: 1. 什么是 WebSocket WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议。这意味着客户端和服务器可以在同一时间内互相发送消息而无需相互等待响应。 相对于传统的 HTTP 请求和响应模型,WebSocket 的优势在于: 省略了一些请求的开销,例如连接建立、HTT…

    Nginx 2023年5月16日
    00
  • 启动nginx 提示:nginx: [emerg] bind() to 0.0.0.0:8082 failed (13: Permission denied)

    原因: selinux 开启导致 输入:getenforce   命令可以查看当前是否开启selinux 输出 disabled 或 permissive 那就是关闭了输出 enforcing 则是开启了 selinux 解决: 1 临时关闭 setenforce 0            ##设置SELinux 成为permissive模式setenfor…

    Nginx 2023年4月13日
    00
  • 在Debian/Ubuntu上面安装升级nginx到最新版

    在Debian下面通过 apt-get 可以自动安装 nginx,不过版本一般比较老,如果想要使用nginx的最新特性就需要升级版本。   一般安装可以通过编绎源文件安装,但可能需要安装很多编绎工具,并且会编辑出一大堆中间文件。   Nginx官网提供了一些编辑绎好的安装包,只需先更新安装源,再通过 apt-get & install 就可安装了。 …

    Nginx 2023年4月11日
    00
  • Nginx设置访问服务器某个目录

    最近实时的项目有个需求,就是要查看集群中各个节点下面跑的项目的Log。于是想到了用Nginx将log目录暴露出来集成到现有的监控平台中去。nginx的安装配置在前面的博客中有提到过,这里记录下如何配置访问log目录。 1 首先,设置权限 配置需要访问的log目录有权限 chmod -R /…/… 在nginx.conf文件中,添加或覆盖下面一行 us…

    Nginx 2023年4月16日
    00
  • mac系统下用nginx服务器部署页面

    1.安装nginx(需要先安装Homebrew)。使用命令 brew install nginx 安装nginx。   2.用命令 open /usr/local/Cellar/nginx 用访达打开安装路径。   3.打开bin文件夹,双击nginx文件,启动nginx,然后访问http://localhost:8080/。 若出现如图界面,则启动ngin…

    2023年4月10日
    00
合作推广
合作推广
分享本页
返回顶部