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

yizhihongxing

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日

相关文章

  • Vue环境搭建报错整理大全

    以下是关于“Vue环境搭建报错整理大全”的完整攻略: 问题描述 在Vue项目中,可能会遇到各种环境搭建报错。本文将整理常见的报错及其决方案。 解决步骤 以下是解决“Vue环境搭建报错整理大全”的步骤: 步骤一:查看报错信息首先,需要查看报错信息,确定是哪种报错。 步骤二:根据报错信息解决问题 根据报错信息,确定需要解决的问题。以下是常见的报错及其解决方案: …

    http 2023年5月13日
    00
  • springcloud feign服务之间调用,date类型转换错误的问题

    引言 在使用 Spring Cloud Feign 调用服务时,常常会遇到日期类型转换错误的问题。因为在服务之间传递日期类型时,很多时候并不使用标准的时间格式(如 ISO 8601),而是使用自定义的日期格式。本篇文章将介绍如何使用 SpringBoot 的自动配置机制来解决这个问题。 问题描述 假设我们有一个服务 A 和一个服务 B,A 通过 Feign …

    http 2023年5月13日
    00
  • 解决java执行cmd命令调用ffmpeg报错Concat error – No such filter ‘[0,0]’问题

    在Java中执行cmd命令调用ffmpeg时,可能会遇到Concaterror-Nosuchfilter'[0,0]’的报错。以下是解决该问题的攻略,其中包含两个示例: 解决Java执行cmd命令调用ffmpeg报错Concaterror-Nosuchfilter'[0,0]’问题 在Java中执行cmd命令调用ffmpeg时,可能会遇到以下报错: Conc…

    http 2023年5月13日
    00
  • CentOS安装pillow报错的解决方法

    以下是“CentOS安装pillow报错的解决方法”的攻略,其中包含两个示例: CentOS安装pillow报错的解决方法 问题描述 在CentOS系统上安装pillow时,可能会遇到各种各样的错误,例如: error: command ‘gcc’ failed with exit status 1 解决方案 方案1:安装依赖 首先,需要安装pillow的依…

    http 2023年5月13日
    00
  • 什么是HTTP请求超时?

    HTTP请求超时是指在进行HTTP请求时,客户端向服务器发送请求后,等待服务器响应的时间超出了事先设定的设定时间。超时可能是由于网络连接问题、服务器故障、服务器繁忙等原因导致的。 若HTTP请求超时,则客户端会视情况采取相应的策略,比如重试请求、放弃请求等。 以下是两个关于HTTP请求超时的示例说明: 示例一 一个用户想要在网页上下载一个大型文件,然后点击了…

    云计算 2023年4月27日
    00
  • 什么是HTTP缓存异常?

    HTTP缓存异常是指当浏览器缓存与服务器缓存的内容不一致或者服务器返回的缓存控制的响应头不合法时,会导致浏览器无法正确地缓存和加载资源,从而影响网站的性能和速度。 为了避免HTTP缓存异常,可从以下几个方面入手: 1. 合理配置缓存策略 在服务器端设置正确的缓存策略可以让浏览器直接使用本地缓存,减少网络请求,提高用户的访问速度。可以通过在服务器端发送包含正确…

    云计算 2023年4月27日
    00
  • 详解SpringCloud Gateway 2020.0.2最新版

    Spring Cloud Gateway是Spring Cloud生态系统中的一个API网关,它提供了一种简单而有效的方式来路由请求、过滤请求和处理错误。以下是一个关于Spring Cloud Gateway的攻略,其中包含了一些示例说明。 Spring Cloud Gateway 2020.0.2最新版 安装Spring Cloud Gateway 在使用…

    http 2023年5月13日
    00
  • java解析JSON数据详解

    在Java中,解析JSON数据是一项常见的任务。JSON是一种轻量级的数据交换格式,它易于阅读和编写,并且易于解析和生成。本文将提供一些解析JSON数据的方法,帮助读者解决这个问题。 解析JSON数据的方法 方法1:使用Java内置的JSON库 Java内置了一个JSON库,可以使用它来解析JSON数据。这个库提供了一个JSONObject类和一个JSONA…

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