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

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

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

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

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

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

Lua 复制代码
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,可以实现更加灵活的请求路由和重定向逻辑。

相关推荐
崔庆才丨静觅8 小时前
hCaptcha 验证码图像识别 API 对接教程
前端
passerby60619 小时前
完成前端时间处理的另一块版图
前端·github·web components
掘了9 小时前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
崔庆才丨静觅9 小时前
实用免费的 Short URL 短链接 API 对接说明
前端
崔庆才丨静觅9 小时前
5分钟快速搭建 AI 平台并用它赚钱!
前端
七夜zippoe9 小时前
CANN Runtime任务描述序列化与持久化源码深度解码
大数据·运维·服务器·cann
崔庆才丨静觅10 小时前
比官方便宜一半以上!Midjourney API 申请及使用
前端
Moment10 小时前
富文本编辑器在 AI 时代为什么这么受欢迎
前端·javascript·后端
崔庆才丨静觅10 小时前
刷屏全网的“nano-banana”API接入指南!0.1元/张量产高清创意图,开发者必藏
前端
剪刀石头布啊10 小时前
jwt介绍
前端