• Nginx基础使用


     nginx 服务器重启命令,关闭

      nginx -s reload  :修改配置后重新加载生效
      nginx -s reopen  :重新打开日志文件
      nginx -t -c /path/to/nginx.conf 测试nginx配置文件是否正确

      关闭nginx:
      nginx -s stop:快速停止nginx
              quit :完整有序的停止nginx

      其他的停止nginx 方式:

      ps -ef | grep nginx

      kill -QUIT 主进程号     :从容停止Nginx
      kill -TERM 主进程号     :快速停止Nginx
      pkill -9 nginx          :强制停止Nginx

      启动nginx:
      nginx -c /path/to/nginx.conf

      平滑重启nginx:
      kill -HUP 主进程号
     

    Nginx server匹配规则正解

    语法格式:location [=|~|~*|^~|@] /uri/ { … }
    其中“~ ”和“~* ”前缀表示正则location ,“~ ”区分大小写,“~* ”不区分大小写;其他前缀(包括:“=”,“^~ ”和“@ ”)和无任何前缀的都属于普通location 
     
    nginx匹配规则:
    先普通location,然后再正则location
    普通location内部(普通location与普通location)实行以“ 最大前缀匹配”为普通location结果(注意:这是一个临时结果,还要进行后面的正则location匹配)。
    然后再进行正则location匹配。
    正则location内部(正则location与正则location)实行“书写顺序匹配”,匹配到第一个就停止后面的正则匹配。
    然后决策匹配结果是“正则匹配如果有匹配上则覆盖普通location匹配结果,否则返回普通location匹配结果
     
    通常情况下:先普通,后正则,但是也可以再匹配普通完成后阻止继续正则匹配
    要做到这一点两种方式:
    • 只要在“普通location ”前面加上“^~ ”符号(^ 表示“非”,~ 表示“正则”,字符意思是:不要继续匹配正则)。
    • 可以加“= ”。
    区别很简单,共同点是它们都能阻止继续搜索正则location ,不同点是“^~ ”依然遵守“最大前缀”匹配规则,然而“= ”不是“最大前缀”,而是必须是严格匹配(exact match )。
     
    但其实还有一种“隐含”的方式来阻止正则location 的搜索,这种隐含的方式就是:当“最大前缀”匹配恰好就是一个“严格精确(exact match )”匹配,照样会停止后面的搜索。原文字面意思是:只要遇到“精确匹配exact match ”,即使普通location 没有带“= ”或“^~ ”前缀,也一样会终止后面的匹配。
     
    先举例解释下,后面例题会用实践告诉大家。假设当前配置是:
    location /exact/match/test.html { 
        配置指令块1
    }
    location /prefix/ { 
        配置指令块2
    } 
    location ~ .html$ { 
        配置指令块3
    } 

    如果请求 GET /prefix/index.html ,则会被匹配到指令块3 ,因为普通location /prefix/ 依据最大匹配原则能匹配当前请求,但是会被后面的正则location 覆盖;

    当请求GET /exact/match/test.html ,会匹配到指令块1 ,因为这个是普通location 的exact match ,会禁止继续搜索正则location 。

    总结来说: “正则 location 匹配让步普通location 的严格精确匹配结果;但覆盖普通 location 的最大前缀匹配结果
     
    server其他描述:
    alias:别名,匹配后,匹配的路径直接替换alias中的路径, alias指定的目录后面必须要加上"/"符号!
    location /www/ {
          alias /home/www/;
    }
    location为"www.xxx.com/www/index.html"最终查早到“/home/www/index.html”;
     
    root:根目录,匹配后,从root目录开始查找文件的目录。
    location /www/ {
          root /home/www/;
    }
    location为"www.xxx.com/www/index.html"最终查早到“/home/www/www/index.html”;
     
     
     
     
     
  • 相关阅读:
    Java数据结构与算法之---求两个数的最大公约数(欧几里得算法)
    Linux下面配置文件~/.bash_profile
    Java数据结构之回溯算法的递归应用迷宫的路径问题
    Java数据结构之对称矩阵的压缩算法---
    Java数据结构之字符串模式匹配算法---KMP算法2
    Java数据结构之字符串模式匹配算法---KMP算法
    Java数据结构之字符串模式匹配算法---Brute-Force算法
    Java数据结构之表的增删对比---ArrayList与LinkedList之一
    Java数据结构之队列的实现以及队列的应用之----简单生产者消费者应用
    Java堆栈的应用1----------堆栈的自定义实现以及括号匹配算法的Java实现
  • 原文地址:https://www.cnblogs.com/chuaWeb/p/nginx_base.html
Copyright © 2020-2023  润新知