zoukankan      html  css  js  c++  java
  • Nginx rewrite 规则 与 proxy_pass 实现

    Nginx rewrite 规则  与 proxy_pass 实现

     
     
    ------------------------------------------------------------------------------------------------------
    ~         大小写敏感匹配
    ~*        大小写不敏感匹配
    !~        大小写敏感不匹配
    !~*       大小写不敏感不匹配
    ------------------------------------------------------------------------------------------------------
     
     
    ------------------------------------------------------------------------------------------------------
    -f        检测文件存在
    -d        检测目录存在
    -e        检测文件,目录或者符号链接存在
    -x        检测文件可执行
    ------------------------------------------------------------------------------------------------------
     
     
    ------------------------------------------------------------------------------------------------------
    break     –  停止rewrite检测,也就是说当含有break flag的rewrite语句被执行时,该语句就是rewrite的最终结果。
    last      –  停止rewrite检测,但是跟break有本质的不同,last的语句不一定是最终结果。
    redirect  –  返回302临时重定向,一般用于重定向到完整的URL(包含http:部分)
    permanent –  返回301永久重定向,一般用于重定向到完整的URL(包含http:部分)
    ------------------------------------------------------------------------------------------------------
     
     
    一些实际例子
     
     
     
    if($http_host = www.qq.com)                  
    {
     rewrite (.*) http://www.baidu.com$1 permanent;
     }
     

    // 如果请求的url是 www.qq.com  则永久重定向到 www.baidu.com

     
     
     
     
     
     
    rewrite ^/([0-9]+).html$ /user/id=$1 last;
     
     

    // 如果 www.qq.com/user/id=123456   则显示为 www.qq.com/123456.html

     
     
     
     
     
     location ^~ /qq/
     {
        proxy_pass http://www.qq.com/;
     }
     

    //如果请求目录为 /qq/  则代理到 www.qq.com     如果www.qq.com/qq/  则代理到 www.qq.com

     
     
     
     
    location ~ ^/data
    {
     deny all;
    }
     

    // 禁止 data 目录下所有文件的请求

     
     
     
     
     
     
    if (!-f $request_filename)
    {
     break;
     proxy_pass  http://www.qq.com;
    }
     

    // 如果请求的文件名不存在 则代理到 www.qq.com

     
     
     
     
     
     
    if (-d $request_filename)
    {
    rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;
    }
     

    // 如果请求的目录存在  则自动增加 / 符号  

    禁止访问 /svn/ git  cvs 这几个目录...防止 svn 文件下载··源码泄漏

      location ~ .*.(svn|git|cvs)

      {

       deny all;

      }

  • 相关阅读:
    ASP.Net在web.config中设置上传文件的大小方法
    asp.net利用QQ邮箱发送邮件,关键在于开启pop并设置授权码为发送密码
    ASP.NET中的几种弹出框提示基本实现方法
    asp.net 不用控件,自动登录(用于和其他系统对接的时候,自动登录系统,用户体验好)
    asp.net要验证的用户名和密码
    c#二维码建立与识别
    c#,读取二维码
    c#,条码
    JavaScript Dom 绑定事件
    JavaScript Dom0 Dom1
  • 原文地址:https://www.cnblogs.com/jicki/p/5546916.html
Copyright © 2011-2022 走看看