lnmp nginx 502错误、404错误页面重定向,终于解决了

将404错误直接发送到自定义404页面

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

在/ etc / nginx的/启用的站点 – /默认
server {
        listen 80 default_server;
        listen [::]:80 default_server ipv6only=on;

        . . .

        <span class="highlight">error_page 404 /custom_404.html;</span>
        <span class="highlight">location = /custom_404.html {</span>
                <span class="highlight">root /usr/share/nginx/html;</span>
                <span class="highlight">internal;</span>
        <span class="highlight">}</span>
}

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

将500级错误直接发送到自定义50x页面

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

在/ etc / 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;
        }

        <span class="highlight">error_page 500 502 503 504 /custom_50x.html;</span>
        <span class="highlight">location = /custom_50x.html {</span>
                <span class="highlight">root /usr/share/nginx/html;</span>
                <span class="highlight">internal;</span>
        <span class="highlight">}</span>

        <span class="highlight">location /testing {</span>
                <span class="highlight">fastcgi_pass unix:/does/not/exist;</span>
        <span class="highlight">}</span>
}

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

完成后保存并关闭文件。

重新启动Nginx并测试您的页面

键入以下命令测试配置文件的语法:

  • sudo nginx -t

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

  • sudo service nginx restart
订阅评论
提醒
guest的头像

0 评论
内联反馈
查看所有评论
0
希望看到您的想法,请您发表评论x