server {
listen 80;
server_name www.example.com example.com;
root /var/www/html;
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
基本配置说明:
error_page 404 /404.html:定义 404 错误页面error_page 500 502 503 504 /50x.html:定义 500、502、503、504 错误页面location = /50x.html:精确匹配 /50x.htmlroot /usr/share/nginx/html:指定网站根目录基本配置原理:
error_page 指令用于定义错误页面,当 Nginx 返回指定的错误码时,会使用定义的错误页面。
error_page 404 /404.html;
location = /404.html {
internal;
}
自定义错误页面说明:
internal:指定内部位置,只能由 Nginx 内部重定向访问自定义错误页面原理:
internal 指令用于指定内部位置,只能由 Nginx 内部重定向访问,不能直接访问。
error_page 404 =302 /not-found.html;
重定向错误页面说明:
=302:指定错误码为 302重定向错误页面原理:
=302 用于指定错误码,Nginx 会返回指定的错误码,而不是原始的错误码。
error_page 404 = @json_error;
location @json_error {
default_type application/json;
return 404 '{"error": "Not Found"}';
}
返回 JSON 错误说明:
@json_error:命名位置default_type application/json:指定默认内容类型return 404 '{"error": "Not Found"}':返回 JSON 错误返回 JSON 错误原理:
@json_error 是命名位置,用于定义错误处理逻辑。default_type 指令用于指定默认内容类型,return 指令用于返回响应。
| 错误码 | 说明 | 示例 |
|---|---|---|
| 200 | 成功 | OK |
| 301 | 永久重定向 | Moved Permanently |
| 302 | 临时重定向 | Found |
| 400 | 错误请求 | Bad Request |
| 401 | 未授权 | Unauthorized |
| 403 | 禁止访问 | Forbidden |
| 404 | 未找到 | Not Found |
| 500 | 服务器内部错误 | Internal Server Error |
| 502 | 网关错误 | Bad Gateway |
| 503 | 服务不可用 | Service Unavailable |
| 504 | 网关超时 | Gateway Timeout |