Nginx error_page 指令

前提环境:

  • NGINX

涉及参考文档:

error_page 语法

Syntax:	    error_page code ... [=[response]] uri;
Default:	
Context:	http, server, location, if in location

将针对指定错误相应码 重定向指定URI,一个uri值可以包含变量。

一、内部重定向到指定uri

vim /etc/nginx/conf.d/error_page.conf
server {
        listen           443 ssl;
        charset          utf-8;
        server_name      www.nginx-error.com *.nginx-error.com; #需要将yourdomain.com替换成证书绑定的域名。
        error_log        /var/log/nginx/bot-sca-error.log;
        access_log       /var/log/nginx/bot-sca-access.log testlog;
        ssl_certificate  /root/nginx.pem;  #需要将cert-file-name.pem替换成已上传的证书文件的名称。
        ssl_certificate_key  /root/nginx.key; #需要将cert-file-name.key替换成已上传的证书密钥文件的名称。
        ssl_session_timeout   5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        #表示使用的加密套件的类型。
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #表示使用的TLS协议的类型。
        ssl_prefer_server_ciphers on;
        access_log  /var/log/nginx/host.access.log  main;

        location /test {
                root /oss/bot_ai_inspect_test/bot-sca;
                error_page 404  404.jpeg  
        }

}

请求访问: www.nginx-error.com/tests

请求返回状态码为404 ,自动跳转到 https://www.nginx-error.com/ 404.jpeg
在这里插入图片描述

二、可以使用 response 语法将响应代码更改为另一个

vim /etc/nginx/conf.d/error_page.conf

在这里插入图片描述

nginx -s reload

请求: www.nginx-error.com/tests
在这里插入图片描述

按道理应该返回的状态码为404,目前可以查看状态码为200。

三、使用 URL 重定向进行错误处理, 跳转百度

vim /etc/nginx/conf.d/error_page.conf
server {
        listen           443 ssl;
        charset          utf-8;
        server_name      www.nginx-error.com *.nginx-error.com; #需要将yourdomain.com替换成证书绑定的域名。
        error_log        /var/log/nginx/bot-sca-error.log;
        access_log       /var/log/nginx/bot-sca-access.log testlog;
        ssl_certificate  /root/nginx.pem;  #需要将cert-file-name.pem替换成已上传的证书文件的名称。
        ssl_certificate_key  /root/nginx.key; #需要将cert-file-name.key替换成已上传的证书密钥文件的名称。
        ssl_session_timeout   5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        #表示使用的加密套件的类型。
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #表示使用的TLS协议的类型。
        ssl_prefer_server_ciphers on;

        access_log  /var/log/nginx/host.access.log  main;


        location /test {
                root /oss/bot_ai_inspect_test/bot-sca;
                error_page 404  =200 404.jpeg;
        }

        location /error {
                root /oss/bot_ai_inspect_test/bot-sca;
                error_page 403  404 =302 https://www.baidu.com;
        }
}
nginx -s reload

请求: http://www.nginx-error.com/error

在这里插入图片描述

四、服务器返回不同的响应代码,以使用它的代码进行响应返回:

vim /etc/nginx/conf.d/error_page.conf
server {
        listen           443 ssl;
        charset          utf-8;
        server_name      www.nginx-error.com *.nginx-error.com; #需要将yourdomain.com替换成证书绑定的域名。
        error_log        /var/log/nginx/bot-sca-error.log;
        access_log       /var/log/nginx/bot-sca-access.log testlog;
        ssl_certificate  /root/nginx.pem;  #需要将cert-file-name.pem替换成已上传的证书文件的名称。
        ssl_certificate_key  /root/nginx.key; #需要将cert-file-name.key替换成已上传的证书密钥文件的名称。
        ssl_session_timeout   5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        #表示使用的加密套件的类型。
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #表示使用的TLS协议的类型。
        ssl_prefer_server_ciphers on;

        access_log  /var/log/nginx/host.access.log  main;


        location /test {
                root /oss/bot_ai_inspect_test/bot-sca;
                error_page 404  =200 404.jpeg;
        }

        location /error {
                root /oss/bot_ai_inspect_test/bot-sca;
                error_page 403  404 =302 https://www.baidu.com;
        }

        location /core {
                root /oss/bot_ai_inspect_test/bot-sca;
                error_page 403  404 = 404.jpeg;  # = 响应码什么返回就响应什么。  
        }

}

请求: http://www.nginx-error.com/core
在这里插入图片描述

这部分内容自行去测试吧
在这里插入图片描述

实际可参考的部分
1、error_page 支持 嵌入 http 中,所有404 的响应都临时重定向到 bilibli网站

     error_page 404 =302 https://www.bilibili.com;

server {
        listen       80 default_server;
        server_name  www.nginx-test.com www.nginx-test-rewrite.com www.nginx-test-pass.com www.nginx-location.com www.nginx-error.com;
        return 302   https://$host$request_uri;
}

在这里插入图片描述

请求: http://www.nginx-error.com/bbbb
http://www.nginx-error.com/aaaa

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值