nginx配置中的error_page一些用法
Posted by he; tagged with nginx , err
使用字段:http, server, location, location中的if字段
以下代码返回状态是50x。
error_page 502 503 /50x.html; location = /50x.html { root /usr/share/nginx/html; }
以下代码返回状态是200。
error_page 502 503 =200 /50x.html; location = /50x.html { root /usr/share/nginx/html; }
也可以设置一个named location,然后在里边做对应的处理,这样可以做很多事了。
error_page 500 502 503 504 @jump_to_error; location @jump_to_error { proxy_pass http://backend; }
比如一个named的示例,当文件是404不存在用伪静态处理(此次用的是error_page 404 = @zsygsls,所以返回的状态码是200而非404):
location /dir/ { proxy_pass http://127.0.0.1; proxy_set_header Host hostname; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header REMOTE-HOST $remote_addr; error_page 404 = @zsygsls; } location @zsygsls { rewrite "^/dir/([a-z0-9]+)/$" /dir.php?id=$1 last; } location / { 主要反代内容... }