如何配置 Nginx 以在 Ubuntu 14.04 上使用自定义错误页面

简介

Nginx 是一种高性能的 Web 服务器,能够以灵活和强大的方式提供内容。在设计网页时,自定义用户将看到的每条内容通常很有帮助。这包括他们请求不可用内容时的错误页面。在本指南中,我们将演示如何配置 Nginx 以在 Ubuntu 14.04 上使用自定义错误页面。

先决条件

要开始使用本指南,您需要一个具有sudo特权的非 root 用户。您可以按照我们的 Ubuntu 14.04 初始设置指南来设置这种类型的用户。

您还需要在系统上安装 Nginx。了解如何按照进行设置。

完成上述步骤后,请继续阅读本指南。

完成上述步骤后,请继续阅读本指南。

创建您的自定义错误页面

我们将创建一些自定义错误页面用于演示目的,但您的自定义页面显然会有所不同。

我们会将自定义错误页面放在/usr/share/nginx/htmlUbuntu 的 Nginx 设置其默认文档根目录的目录中。我们将为 404 错误创建一个页面,custom_404.html称为custom_50x.html. 如果您只是进行测试,则可以使用以下几行。否则,请将您自己的内容放在以下位置:

echo "<h1 style='color:red'>Error 404: Not found :-(</h1>" | sudo tee /usr/share/nginx/html/custom_404.html
echo "<p>I have no idea where that file is, sorry.  Are you sure you typed in the correct URL?</p>" | sudo tee -a /usr/share/nginx/html/custom_404.html
echo "<h1>Oops! Something went wrong...</h1>" | sudo tee /usr/share/nginx/html/custom_50x.html
echo "<p>We seem to be having some technical difficulties. Hang tight.</p>" | sudo tee -a /usr/share/nginx/html/custom_50x.html

我们现在有两个自定义错误页面,当客户端请求导致不同的错误时,我们可以提供这些页面。

配置 Nginx 以使用您的错误页面

现在,我们只需要告诉 Nginx,只要发生正确的错误情况,它就应该使用这些页面。在/etc/nginx/sites-enabled要配置的目录中打开服务器块文件。我们将使用名为 的默认服务器块文件default,但如果您使用的是非默认文件,则应调整自己的服务器块:

sudo nano /etc/nginx/sites-enabled/default

我们现在可以将 Nginx 指向我们的自定义错误页面。

将 404 错误定向到自定义 404 页面

使用该error_page指令,以便在发生 404 错误时(未找到请求的文件时),提供您创建的自定义页面。我们将为文件创建一个位置块,在那里我们能够确保根目录匹配我们的文件系统位置,并且该文件只能通过内部 Nginx 重定向访问(客户端不能直接请求):

server {
        listen 80 default_server;
        listen [::]:80 default_server ipv6only=on;

        . . .

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

通常,我们不必root在新的位置块中设置 ,因为它与服务器块中的根匹配。但是,我们在这里是明确的,以便即使我们将常规 Web 内容和关联的文档根目录移动到不同的位置,也会提供我们的错误页面。

将 500 级错误定向到自定义 50x 页面

接下来,我们可以添加指令以确保当 Nginx 遇到 500 级错误(与服务器相关的问题)时,它将为我们制作的另一个自定义页面提供服务。这将遵循我们在上一节中使用的完全相同的公式。这次我们设置了多个500级的错误,全部使用custom_50x.html页面:

server {
        listen 80 default_server;
        listen [::]:80 default_server ipv6only=on;

        . . .

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

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

        location /testing {
                fastcgi_pass unix:/does/not/exist;
        }
}

在底部,我们还添加了一个虚拟的 FastCGI 通道,以便我们可以测试我们的 500 级错误页面。由于后端不存在,这将无法正常工作。在此处请求页面将允许我们测试 500 级错误是否服务于我们的自定义页面。

完成后保存并关闭文件。

重启 Nginx 并测试你的页面

通过键入以下内容来测试配置文件的语法:

sudo nginx -t

如果报告了任何错误,请在继续之前修复它们。当没有返回语法错误时,键入以下命令重新启动 Nginx:

sudo service nginx restart

现在,当您访问服务器的域或 IP 地址并请求一个不存在的文件时,您应该会看到我们设置的 404 页面:

http://server_domain_or_IP/thiswillerror

当您转到我们为 FastCGI pass 设置的位置时,我们将收到带有我们自定义 500 级页面的 502 Bad Gateway 错误:

http://server_domain_or_IP/testing

您现在可以返回并从 Nginx 配置中删除虚假的 FastCGI 传递位置。

结论

您现在应该为您的站点提供自定义错误页面。这是一种个性化用户体验的简单方法,即使他们遇到问题也是如此。对这些页面的一项建议是包含指向他们可以获得帮助或更多信息的位置的链接。如果这样做,请确保即使发生相关错误,链接目标也可访问。

本文由K哥影院首发,(www.kgeyyy.com)转载请注明来源

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值