nginx测试验证

nginx验证内容:

1. 请求 IP:PORT/abc和IP:PORT/abc/对应的uri分别是什么
  • IP:PORT/abc 对应的uri为/abc
  • IP:PORT/abc/ 对应的uri为/abc/
2. 请求 IP:PORT/abc/def?name=theorydance#login 的uri是什么
  • 得到的uri是/abc/def
3. img标签/浏览器/apipost请求 IP:PORT/abc/efg返回302,各自是怎么处理的

http://192.168.52.120/abc/efg?name=ranfs,不管是<img>标签,浏览器还是apipost都会自动进行重定向,在<img>标签中,重定向后原始代码还是/abc/efg代码,但是能够真实加载出来图片,可以通过fiddler捕获到302状态码,针对携带的参数会自动转给重定向的地址上

验证使用的nginx配置

location /abc/ {
    if ($uri = '/abc/efg') {
       rewrite (.*) https://oss_bucket.oss-cn-region.aliyuncs.com/test/img.png redirect;
    }
    root /data/deploy;
}
location /oss/ {
    if ($uri ~* '/oss/') {
       # 注意:当请求地址url中带有params的时候,会将参数自动拼接到最后面,比如传递的`?token=xxx`,在拼接之后,就是`?addtime_flag=now&token=xxx`
       # $uri是不包含参数和锚点的部分
       rewrite ^/oss/(.*?)/(.*)$ https://$1.oss-cn-region.aliyuncs.com/$2?addtime_flag=now redirect;
    }
    root html;
}

GET /oss/test_bucket/202208/loginPage.png?token=xxx
Location https://test_bucket.oss-cn.region.aliyuncs.com/202208/loginPage.png?addtime_flag=now&token=xxx

posted @ 2022-07-29 15:43  理舞  阅读(774)  评论(0编辑  收藏  举报