Nginx支持的常见HTTP状态码有:
- 200 OK:请求成功
- 301 Moved Permanently:永久重定向
- 302 Found:临时重定向
- 304 Not Modified:请求资源未修改,使用缓存
- 400 Bad Request:客户端请求错误
- 401 Unauthorized:未经授权
- 403 Forbidden:服务器拒绝请求
- 404 Not Found:请求资源不存在
- 500 Internal Server Error:内部服务器错误
- 502 Bad Gateway:网关错误
- 503 Service Unavailable:服务不可用
配置示例:
# 301重定向
location /old/ {
return 301 /new/;
}
# 404错误页
error_page 404 /404.html;
# 5xx错误页
error_page 500 502 503 504 /50x.html;
# 返回403禁止访问
location /admin/ {
deny all;
return 403;
}
# 根据Negitve路径判断是否返回304
location ~* ^.+\.(jpg|png|gif)$ {
if ($request_method = GET) {
expires max; # 过期时间设置较大,利用缓存
if (!-f $request_filename) { # 如果文件不存在
return 304; # 返回304
}
}
}
- 第一条规则实现301重定向/old/到/new/
- 第二条规则指定404错误显示404.html页面
- 第三条规则指定5xx系列错误显示50x.html页面
- 第四条规则 location /admin/拒绝所有请求,返回403禁止访问
- 第五条规则对jpg|png|gif类型的GET请求,如果文件不存在则返回304状态码,利用浏览器缓存。
所以访问/old/会301重定向到/new/
404错误会显示404.html页面
访问/admin/会返回403状态码
对不存在的图片文件会返回304状态码使用浏览器缓存