Nginx错误页面优雅显示

生产环境中常见的http状态码列表:

200 服务成功返回页面,这是成功的http请求

301 永久跳转permanent

302 临时跳转 redirect

403 禁止访问,这个请求是合法的,但是服务器端因为事先根据规则而拒绝了请求,一般是服务器权限设置不正确。

404 服务器找不到客户端所请求的页面

500 服务器内部错误

502 坏的网关,一般为代理服务器出现问题

503 服务器当前不可用,可能因为服务器超载或者是维护所致

504 网关超时

优雅显示

我们可以将403.404页面重定向到网站首页或者指定的页面中,优化用户体验

示范:

server {

listen 80;

server_name www.titi.com;

location / {

root html/www;

index index.html index.htm;

}

error_page 404 /404.html; <<当出现403页面时,会跳转到403.html 页面中

access_log /app/logs/bbs_access.log main ;

}

上面的 /403,html 页面位于 html/www下的403.html页面

然后客户端进行测试

[root@localhost ~]# curl www.etiantian.org/fjh.html

this is 404 page

记住:代码中的 /404.html 是相当于你设定的虚拟主机制定的目录下

 

示范2:将50x.html单独防到指定的网站资源中

 

server {

listen 80;

server_name www.etiantian.org;

location / {

root /www/html;

index index.html index.php index.htm ;

# auth_basic "pless put passwd";

# auth_basic_user_file htpasswd;

access_log logs/fangwen.log main; }

error_page 404 /404.html;

error_page 502 501 504 503 /50x.html;

location = /50x.html { <<制定到/error 目录下

root /error;

}

 

示范3:改变状态码为新的状态码,并显示指定页面

error_page 404 = 200 /empty.gif;

server {

listen 80;

server_name www.banna.com;

location / {

root /data/www/html ;

index index.html index.htm;

fastcgi_intercept_errors on ;

error_page 404 = 200 /ta.jpg ;

access_log /app/llogs/bbs_access.log main;

}

}

示范4:错误状态码URL重定向

server {

listen 80;

server_name www.banna.com;

location / {

root /data/www/html ;

index index.html index.htm;

fastcgi_intercept_errors on ;

error_page 404 http://www.tianmao.com/error/404.html;

access_log /app/llogs/bbs_access.log main;

}

}

示范5:将状态码转换为另一个location中

location / {

error_page 404 = @fallback;

}

location @fallback {

proxy_pass hhttp://backend;

 

阿里天猫的优雅显示参考:

error_page 500 501 502 503 504 http://err.tmall.com/error1.html;

error_page 400 403 404 405 411 412 413 http://err.tmall.com/error2.html

 

你可能感兴趣的:(nginx)