Nginx 自定义错误页面

错误页面模板

tarampampam/error-pages: 🚧 Pretty server’s error pages in the docker image & git repository (github.com)

HttpErrorPages/HttpErrorPages: Simple HTTP Error Page Generator (github.com)
[alexphelps/server-error-pages: Easy to use, professional error pages to replace the plaintext error

pages that come with any server software like Nginx or Apache (github.com)](https://github.com/alexphelps/server-error-pages)

配置Nginx

拷贝模板

  1. 查看自己Nginx的安装目录,中Nginx的Html模板页面位置(这里我的目录位置是/var/lib/nginx)这里面的html为nginx静态文件存储位置。

  1. 这里将文件拷贝到html文件夹中(可以自己新建子文件夹),这里我放在errorpages里面

编写配置文件

这里提供我的配置文件信息仅供参考,首先需要找到自己Nginx的配置文件位置,我这里是Linux一般存放在/etc/nginx目录下。

为了以后方便修改Nginx的配置文件信息,这里使用include绑定自定义配置文件。

  1. 创建自定义Nginx配置文件,这里创建errorconfig文件夹,存放错误页面配置

  1. 编写配置文件errror_page.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
   error_page 400 /400.html;
error_page 401 /401.html;
error_page 402 /402.html;
error_page 403 /403.html;
error_page 404 /404.html;
error_page 405 /405.html;
error_page 406 /406.html;
error_page 407 /407.html;
error_page 408 /408.html;
error_page 409 /409.html;
error_page 410 /410.html;
error_page 411 /411.html;
error_page 412 /412.html;
error_page 413 /413.html;
error_page 414 /414.html;
error_page 416 /416.html;
error_page 418 /418.html;
error_page 429 /429.html;
error_page 431 /431.html;
error_page 451 /451.html;
error_page 497 /497.html;
error_page 500 /500.html;
error_page 502 /502.html;
error_page 503 /503.html;
error_page 504 /504.html;
error_page 505 /505.html;

location ~ /(10[0-3]|2[02][1-9]|30[1-8]|4[0125][0-9]|50[0-9])\.html {
root html/errorpages;
sub_filter '%{HOSTNAME}' $host;
sub_filter_once off;
allow all;
internal;
}
# redirect server error pages to the static page /50x.html

location ^~ /_errors/ {
root html/errorpages;
allow all;
}

配置文件中的location表示映射的目标目录地址照抄即可,了解[[Location匹配规则]]。

  1. 主配置文件中进行引入
    添加include /etc/nginx/errorconf/error_page.conf;location同级下。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
server {
# Qbittorent;
server_name pt.baiyz.top;
listen 8888;

location / {
proxy_pass http://192.168.0.9:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect http:// https://;
proxy_intercept_errors on;
}
include /etc/nginx/errorconf/error_page.conf; #添加这个
}

重载配置

重载命令:nginx -s reload

验证

这是我自己的地址,你的请自行替换

测试:Not Found (baiyz.top)

成功