nginx根据访问的url参数或者是请求 头部作判断转发

location /ws/ {
        add_header 'Access-Control-Allow-Origin' '*'; 
        add_header 'Access-Control-Allow-Credentials' 'true'; 
        add_header 'Access-Control-Allow-Headers' 'Content-Type, x-csrf-token, X-Access-Token, Accept';
        add_header 'Access-Control-Allow-Methods' 'GET,HEAD,PUT,POST,DELETE,PATCH';
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-Nginx-Proxy true;
        if ($arg_token = '') {
         #return 401;
         set $token  para; 
        }
        if ($http_token = '') {
            #return 401;
             set $token  "${token}header"; 
        }
         if ($token = paraheader){
         return 401;
         }
         
        proxy_pass http://127.0.0.1:8080/app/;
        proxy_redirect off;
        }html

简要说明if ($arg_token = '')表参数中没有名为token的参数,  if ($http_token = '')表示没有token这个请求头。nginx

特别注意if is evil,nginx不提供多if判断,没有or这样的判断,因此只能用上文这种方式web

 

对于须要指定代理到那一台服务器的场景能够采用这种模式,例如webSocket长链接,对应分布式多个区域的服务器,指定的用户只能链接到对应的服务器,能够采用这种方式,nginx支持正则匹配服务器

https://www.cnblogs.com/mafeng/p/10922707.htmlapp

https://blog.csdn.net/u012687769/article/details/78606202/分布式

nginx location正则写法

http://www.javashuo.com/article/p-qusigjmv-gg.htmlspa

相关文章
相关标签/搜索