Nginx error_page自定义错误页面设置过程

Nginx是一款高性能的Web服务器和反向代理服务器。在我们的网站中,有时候会出现一些错误,比如404页面未找到,500出现内部错误等。这些错误如果没有处理好, 会影响到用户的体验,所以我们需要将这些错误页面进行美化处理,使得用户能够更好地使用我们的网站。Nginx提供了error_page指令来自定义错误页面,下面是详细的步骤说明及示例。

步骤一:定位Nginx配置文件

在Linux系统中,Nginx配置文件通常都在/etc/nginx目录下,打开nginx.conf文件。

sudo vi /etc/nginx/nginx.conf

步骤二:配置自定义错误页面

nginx.conf文件中添加error_page指令来配置自定义错误页面。

http {
    ...
    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;
    location = /404.html {
        root /usr/share/nginx/html;
        internal; 
    }
    location = /50x.html {
        root /usr/share/nginx/html;
        internal; 
    }
}

上述代码中,我们定义了两个错误页面:404页面和50x页面,其中404页面需要进行 root 设置,而50x 页面需要设置多个错误状态码。其中 internal 表示仅允许 Nginx 内部访问,不允许外部直接访问。

步骤三:配置自定义页面的样式(可选)

将自己设计的样式文件以及相关的图片、字体等资源上传到服务器上的指定目录下,比如:/usr/share/nginx/html,以404页面为例,修改样式文件并在/usr/share/nginx/html目录下新增404.html文件。

步骤四:测试

重启Nginx服务,测试自定义页面是否生效。

sudo service nginx restart

示例一:自定义404页面

/usr/share/nginx/html目录下创建404.html文件,同时也可以在该目录下放置我们设计的样式文件、字体、图片等。

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>404 Error - Page Not Found</title>
    <style>
        body {
            background: #969696;
            font-family: Arial, sans-serif;
            margin: 0;
            padding: 0;
        }

        .container {
            height: 100%;
            width: 100%;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
        }

        h1 {
            color: #fff;
            font-size: 6rem;
            font-weight: bold;
            margin: 0;
            line-height: 1;
        }

        p {
            color: #fff;
            font-size: 2rem;
            margin: 0;
            padding-bottom: 3rem;
        }

        button {
            background: #fff;
            color: #969696;
            font-size: 2rem;
            border: none;
            border-radius: 5px;
            padding: 1rem 3rem;
            cursor: pointer;
            transition: all .3s ease;
        }

        button:hover {
            background: #000;
            color: #fff;
            transition: all .3s ease;
        }
    </style>
</head>
<body>
    <div class="container">
        <h1>Oops!</h1>
        <p>404 Error - Page Not Found</p>
        <button onclick="window.history.back()">返回上一页</button>
    </div>
</body>
</html>

修改nginx.conf文件并重启Nginx服务。

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

访问不存在的页面,即可看到自定义的404页面。

示例二:自定义50x页面

/usr/share/nginx/html目录下新增50x.html文件。

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>500 Error - Internal Server Error</title>
    <style>
        body {
            background: #d9534f;
            font-family: Arial, sans-serif;
            margin: 0;
            padding: 0;
        }

        .container {
            height: 100%;
            width: 100%;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
        }

        h1 {
            color: #fff;
            font-size: 6rem;
            font-weight: bold;
            margin: 0;
            line-height: 1;
        }

        p {
            color: #fff;
            font-size: 2rem;
            margin: 0;
            padding-bottom: 3rem;
        }

        button {
            background: #fff;
            color: #d9534f;
            font-size: 2rem;
            border: none;
            border-radius: 5px;
            padding: 1rem 3rem;
            cursor: pointer;
            transition: all .3s ease;
        }

        button:hover {
            background: #000;
            color: #fff;
            transition: all .3s ease;
        }
    </style>
</head>
<body>
    <div class="container">
        <h1>Oops!</h1>
        <p>500 Error - Internal Server Error</p>
        <button onclick="window.location.href='http://localhost'">返回首页</button>
    </div>
</body>
</html>

修改nginx.conf文件并重启Nginx服务。

http {
    ...
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
        internal; 
    }
}

访问不存在的页面,Nginx会返回500错误,将会显示自定义的50x页面。

总之,使用error_page指令可以方便地定义自己的错误页面,提升用户体验。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Nginx error_page自定义错误页面设置过程 - Python技术站

(0)
上一篇 2023年5月13日
下一篇 2023年5月13日

相关文章

  • vue2项目中全局封装axios问题

    对于Vue2项目中全局封装Axios的问题,可以采用以下步骤: 安装axios 在项目中使用npm安装axios: npm install axios -S 创建Axios实例 在项目的src目录下创建一个名为axios.js的文件,在该文件中进行Axios实例的创建: import axios from ‘axios’ const service = ax…

    http 2023年5月13日
    00
  • HTTP的Content-Disposition头部有什么作用?

    HTTP的Content-Disposition头部是一种HTTP响应头,它指示浏览器如何显示将要被下载的响应内容。例如,Content-Disposition头部可以用来指定要以什么方式下载文件,或者在浏览器中显示文件,还可以设置文件名和内联显示时的MIME类型。 Content-Disposition头部通常包含两个参数:disposition type…

    Http网络协议 2023年4月20日
    00
  • 如何用python实现一个HTTP连接池

    以下是关于“如何用Python实现一个HTTP连接池”的完整攻略: 简介 HTTP连接池是一种用于管理HTTP连接的技术,可以提高HTTP的效率和性能。本文将介绍如何用Python实现一个HTTP连接池,包括创建连接池、获取连接、释放连接等。 实现步骤 以下是实现HTTP连接池的步骤: 步骤一:安装依赖 首先,需要安装requests和urllib3。可以使…

    http 2023年5月13日
    00
  • HTTPS握手过程中证书验证的作用是什么?

    HTTPS握手过程中的证书验证主要是为了确保客户端与服务器之间的通信是安全可靠的。证书验证可以验证服务器实体的身份,确保通信的机密性和完整性。 证书验证的过程如下: 客户端向服务器发送连接请求,请求中包含SSL版本、加密算法等信息。 服务器返回证书,这个证书是由数字证书颁发机构(CA)签发的,包含了服务器实体的信息。证书中包含了服务器公钥、服务器名称、证书有…

    云计算 2023年4月27日
    00
  • linux 服务器常用维护命令

    下面是针对 Linux 服务器常用维护的命令的攻略: 1. 维护命令 1.1 top top 命令是 Linux 系统中非常常用的一个命令,用于查看系统的实时运行情况。它可以列出当前占用 CPU 和内存最高的进程,并可以实时更新这些进程的状态。使用方法如下: top 该命令将会显示当前系统的总体情况,包括当前运行的进程数量、CPU 使用情况、内存使用情况和 …

    http 2023年5月13日
    00
  • 30条android项目开发技巧与经验总结

    以下是“30条android项目开发技巧与经验总结”的完整攻略: 1. 使用MVP或MVVM架构 使用MVP或MVVM架构可以将代码分离为模型、视图控制器,使代码更于维护和测试。 2. 使用依赖注入 使用依赖注入可以减少代码的耦合性,使代码更易于维护和测试。 3 使用Retrofit进行网络请求 使用Retrofit可以轻松地进行网络请求,并且可以自动将JS…

    http 2023年5月13日
    00
  • Springboot项目因为kackson版本问题启动报错解决方案

    以下是关于“Springboot项目因为kackson版本问题启动报错解决方案”的完整攻略: 问题描述 在Springboot项目中,可能会因为kackson版本问题启动报错。本文将介绍如何解决这个问题。 解决步骤 以下是解决“Springboot项目因为kackson版本问题启动报错”的步骤: 步骤一:查看报错信息 首先,需要查看报错信息,确定是因为kac…

    http 2023年5月13日
    00
  • django rest framework vue 实现用户登录详解

    以下是关于“djangorestframeworkvue实现用户登录详解”的完整攻略: 简介 Django REST framework和Vue.js是一对非常大的组合,可以用于构建现代Web应用程序。本文将介绍如何使用Django REST framework和Vue.js现用户登录。 后端实现 在后端实现用户登录,可以按照以下步骤进行: 1. 安装Dja…

    http 2023年5月13日
    00
合作推广
合作推广
分享本页
返回顶部