• nginx配置详解


    一、配置访问xxx.php文件的支持

      此时的nginx程序是一个服务器端的代理服务器,nginx接收到客户端xxx.php文件的请求,将这个请求交给本机9000端口的php-fpm程序处理,php-fpm程序以html格式将

      处理结果返回个nginx

      location ~ .php$ {

       root html;          #站点根目录

       fastcgi_pass 127.0.0.1:9000;  #cgi程序的端口

       fastcgi_index index.php;    #主页文件名

       include fastcgi.conf;      #引入配置文件

     }

    二、nginx路由设置(location段) 

      (1) 语法:location  [ = | ~ | ~* | ^~ |  ]  uri  { ... } 或location @name {...}

      (2)匹配的类型

    注:uri: 要匹配的字符串 eg: /index.php /add/  /delete 。uri前面的符号代表匹配类型(uri与符号间带空格)

    = :对URI做精确匹配,请求的URI和patt一模一样

    ^~:最长前缀匹配,不区分字符大小写,不作正则匹配

    ~ :对URI做正则表达式模式匹配,区分字符大小写

    ~*:对URI做正则表达式模式匹配,不区分字符大小写

    !~:   符合正则不匹配,不符合匹配,区分字符大小写

    !~*: 符合正则不匹配,不符合匹配,不区分字符大小写

    不带符号:普通匹配

    匹配优先级从高到低:=, ^~, ~/~*, 不带符号 

    location命中过程:

    1.先进性精准匹配,如果命中立即返回结果并结束解析;

    2.精准匹配未命中判断普通匹配,如果命中多个会记录下"最长的"命中结果,但不会结束解析;

    3.继续判断正则匹配,按照正则匹配设置的规则正则表达式进行匹配,如果有多个正则匹配由上到下进行匹配,一旦匹配成功一个会立即返回结果并结束解析 

    (3)设置访问权限

      deny  all;  

      return 403;

      allow ipaddr;  #允许该IP访问

    (4)关闭访问日志(减轻负担)

      access_log off;

    (4)设置响应内容在浏览器的属性

      expires 30d;  有效期30天  s  h

      

    三、虚拟主机配置(server段)

      1.端口监听

      2.虚拟主机域名

      3.路由(location段)

      4.条件判断( if(){..} )

        -f,!-f  #判断是否存在文件

        -d,!-d  #是否存在目录

        -e, !-e  #是否存在文件或目录

        -x , !-x  #是否是可执行文件

        eg:if( !-e $requesr_filename){  #如果请求的资源不是一个文件或目录,

          rewrite ^/(.*)$ index.php last;

        }

    四、nginx重写(server,location ,if)

      (1)重写相关指令

        1. last  #会重新对server发起请求,再匹配

        2. break  #终止匹配

        3. redirect  #临时重定向302,浏览器会先到这里再跳转到重定向位置

        4. permannent  #永久重定向301,浏览器再访问该资源时,直接到重定向位置

        5. if  #条件符合,执行大括号内语句(只能进行简单的是否判断)

        6. return  #结束路由匹配,返回状态码给客户端。returm 200

        7. rewrite  #将请求的资源路径重写为其它路径,再进行路由匹配

          rewrite ^/(.*)$ index.php last; 

          例:请求资源路径 12345/add 改写为   add?id=12345

          rewrite ^/(d+)/(.+)/  /$2?id=$1 last;

        8. set   #定义一个变量并赋值  set $host  'www';

        9. proxy_pass ipaddr;

      (2)重写应用场景

        1. 隐藏入口文件,部署TP

        2. 防盗链

        3. 将多级目录下的文件转成一个文件,增强seo

        4. 域名跳转

    二、日志设置

      

  • 相关阅读:
    19.1.25 [LeetCode8]String to Integer (atoi)
    19.1.23 CJK Round 1A 2015
    19.1.22 CJK Qualification Round 2015
    【转载】超级弹丸论破2再见绝望学园攻略
    19.1.20 [LeetCode 7]Reverse Integer
    19.1.20 [LeetCode 6]ZigZag Conversion
    19.1.20 [LeetCode 5]Longest Palindromic Substring
    python socket-select io多路复用
    web框架 源码
    python socket
  • 原文地址:https://www.cnblogs.com/fanshehu/p/11878721.html
Copyright © 2020-2023  润新知