【Nginx】nginx配置跳转实现接口静态化

1.配置nginx跳转到oss静态化地址;

2.oss bucket配置回源到服务端接口;

3.服务端接口有处理oss bucket回源地址,按规则拼装完整url以后redirect;

4.服务端需要提供清理oss文件的接口;

5.静态化域名配置:域名解析到OSS地址,CDN加速域名解析到OSS地址,OSS配置域名;

location = /v2/org/getSlideShow {
        set $flag 0;
        if ($args ~ is_from_cdn=(\d+)){
                set $flag "${flag}1";
        }
        if ($flag = "0"){
                rewrite ^ https://www.baidu.com/(v2)_(org)_(getSlideShow)__(instance_id)_(${arg_instance_id})_(block_id)_(${arg_block_id})? permanent;
        }
        #正常处理请求
        if ( !-e $request_filename ) {
        rewrite ^/(.*)$ /index.php?s=/$1 last;
    }
}

这段nginx配置代码是一个location指令,它指定了一个匹配特定URL路径的请求的处理方式。

具体功能如下:

  1. location = /v2/org/getSlideShow:指定匹配的URL路径为"/v2/org/getSlideShow"。
  2. set $flag 0:设置一个名为$flag的变量,并将其初始值设为0。
  3. if ($args ~ is_from_cdn=(\d+)):检查请求参数中是否存在名为"is_from_cdn"的参数,并且其值为一个数字。
  4. set $flag "${flag}1":如果条件3成立,则将$flag变量的值追加一个"1"。
  5. if ($flag = "0"):检查$flag变量的值是否为"0"。
  6. rewrite ^ https://www.baidu.com/(v2)_(org)_(getSlideShow)__(instance_id)_(${arg_instance_id})_(block_id)_(${arg_block_id})? permanent;:如果条件5成立,则将请求重定向到"https://apidata.magook.com/",并根据参数"instance_id"和"block_id"的值进行构建URL。
  7. if ( !-e $request_filename ):检查请求的文件是否存在。
  8. rewrite ^/(.*)$ /index.php?s=/$1 last;:如果条件7不成立,则将请求重定向到"/index.php",并将请求的URL路径作为参数传递给index.php脚本。

总体来说,这段配置代码的功能是:

  • 当请求的URL路径为"/v2/org/getSlideShow"且参数"is_from_cdn"为数字时,将$flag变量设置为"1"。
  • 如果$flag变量的值为"0",则将请求重定向到另一个URL。
  • 如果请求的文件不存在,则将请求重定向到"/index.php",并将请求的URL路径作为参数传递给该脚本。

为什么要用${arg_instance_id}

在上述的nginx配置代码中,${arg_instance_id}${arg_block_id}是变量引用,用于获取传递给请求的参数"instance_id"和"block_id"的值。

在nginx中,通过$arg_param可以获取传递给请求的参数的值,其中param是参数的名称。因此,${arg_instance_id}${arg_block_id}分别引用了请求参数"instance_id"和"block_id"的值。

这样做的目的是为了动态地构建URL,以便将请求重定向到正确的位置。根据参数的值构建URL,可以实现更加灵活的请求路由和重定向逻辑。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小镇学者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值