美文网首页
Nginx 配置相关内容

Nginx 配置相关内容

作者: 小一一93 | 来源:发表于2018-11-29 09:01 被阅读0次

    根据hostname进行api访问限制

    根据hostname对访问api进行配置。

    location /flow-service/ 
    {
        if ($host = "hostname.com") 
        {
            return 403;
        }
    }
    
    • $host:nginx自带的变量,可以获取到当前的hostname
    • 最后需要有location 那一行最后要有一个/
    • return 403,当访问该api时,会被nginx进行拦截,返回403,且显示nginx默认的403页面
    • 相等判断使用‘=’
    • 字符串使用“”框起来

    配置页面访问限制

    Nginx会算一个权重,因此直接进行显示配置如:

    location /url
    

    会直接算为对api的配置,直接跳转到后端

    配置页面访问限制需要配置如:

    location /url/url 
    {
        root xxxx;
        try_files xxx;
        allow xxx;
        deny xxx;
        if (xxxx) 
        {
            return 403/404;
        }
    }
    

    多条件判断

    • Nginx中没有逻辑运算,因此需要写多个 if 而不是使用 || 或者 && 等运算符。

    精确匹配与模糊匹配差别

    location =/ { … } 与 location / { … } 的差别:

    • 前一个是精确匹配,只响应/请求,所有/xxx或/xxx/xxxx类的请求都不会以前缀的形式匹配到它
    • 后一个是只要以 / 为前缀的请求都会被匹配到。如:/abc , /test/abc, /test/abc/aaaa

    正则匹配

    • location ~ /test/.+.jsp$ { … } :正则匹配,支持标准的正则表达式语法。
      • 波浪号(~):表示执行正则匹配,但区分大小写
      • 波浪号与星号(~*):表示执行正则匹配,但不 区分大小写
    • location ^~ / { … } : ^~意思是关闭正则匹配,当搜索到这个普通匹配模式后,将不再继续搜索正则匹配模式。

    遇到的问题:

    • “proxy_pass” cannot have URI part in location given by regular expression
      原因:proxy_pass 不能写在正则表达式 / if / limit_except 中
      解决方案:在proxy_pass 后边的uri的最后添加“$1”。
      如:(仅针对API)
    location ~ ^/([A-Za-z0-9]+) {
        proxy_pass http://api/urlshortener/v1/$1;
    }
    或者
    location ~ /backend-service/(.*)/static-url {
          proxy_pass <%= ENV["DATA_SERVICE_PATH"] %>$1/static-url;
    }
    // $1, $2, $3等表示第几个正则表达式变量,正则表达式变量需要用()括起来。
    
    location /backend-service/data {
        proxy_pass <%= ENV["DATA_SERVICE_PATH"] %>data;
        // ENV["DATA_SERVICE_PATH"] = http://website.xxx.xxxx.cn/
    }
    

    (<%= ENV["DATA_SERVICE_PATH"] %> 变量可以直接后续想要添加的内容)

    如果是页面需要,需要在前边写一个rewrite:

    location ~ /backend-service/.+./tableau-url {
          rewrite ^ .+./tableau-url $1
          proxy_pass <%= ENV["DATA_SERVICE_PATH"] %>$1;
    }
    

    相关文章

      网友评论

          本文标题:Nginx 配置相关内容

          本文链接:https://www.haomeiwen.com/subject/nuhxcqtx.html