nginx之if判断、变量设置、$1

一、if指令

if 空格 (条件) {
    xxx
}

“=”来判断相等, 用于字符串比较

“~” 用正则来匹配(此处的正则区分大小写)
~* 不区分大小写的正则

-f (判断请求的文件是否存在);
-d (请求的目录是否存在) ;
-e (文件或目录是否存在) ;
-x (文件是否可执行)。

二、设置变量

set $var "hello"

三、有正则表达式匹配时,并且表达式有(),则$1、$2依次是第一个()中匹配的值和第二个()中匹配的值

http {
    include mime.types;
    default_type application/octet-stream;
    client_max_body_size 50M;
    server {
        listen 8080;
        resolver xxx.xxx.xxx.xxx;
        if ( $request_uri ~ ^/([^/]+)/(.*)$ ) {
            set $proxy_ip $1;
            set $proxy_url $2;
        }
        location / {
            proxy_pass https://$proxy_ip/$proxy_url;
        }

    }

}

假设请求的为http://ip:8080/zzz.yyy.xxx/v1.0/login   ,正则表达式是:^/([^/]+)/(.*)$   

则$proxy_ip为zzz.yyy.xxx,对应于([^/]+)匹配的内容,$proxy_url为v1.0/login ,对应于(.*)的内容

注意:要及时将$1和$2赋值给变量,否则,当后面再有表达式时,$1和$2的值会改变

resolver 域名解析

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值