美文网首页
nginx学习笔记

nginx学习笔记

作者: 一溪酒 | 来源:发表于2016-09-19 21:09 被阅读165次

    一. 安装

    详见 这里

    二. 基本命令

    1. 启动: nginx

    2. 重启: nginx -s reload

    3. 关闭: nginx -s stop 或者 nginx -s quit

    三. default_server 关键字

    据我所测,有优先匹配到这里,然后才到其他的location

    四. 可以在http模块里面使用include指令,将server放在其他文件配置

    可以直接include一个文件,或者匹配可以了。如 /xxx/xxxx/*

    五。nginx处理请求过程

    1. 不允许访问不存在的server_name:

    只要将server_name 设置为空字符串即可。

    server {

    listen      80;

    server_name "";

    return      444;

    }

    (这个试过好像不行,所以我还是弄一个

    server {

    listen      80;

    server_name *.koala.com;

    return      444;

    }

    这样吧,只允许访问特定的子域名)

    六. location匹配顺序

    1. = 这个是完全精准匹配,停止搜索匹配

    2. ^~ 这个是最大前缀匹配,停止搜索匹配

    3. ~ 大小写相关的正则表达式

    4. ~* 大小写无关的正则表达式

    5. 普通字符串匹配,这个时候越精准越好。比如 /images/ 比 / 优先级更高。虽然可能 / 这个location先写,但是假如访问的是 /images/666,匹配的却是 /images/ 。

    6. 优先级: 1最高,然后是2,其余的正则表达式其次,普通字符串优先级最低(越模糊的越低)

    七。server_name 的优先级

    1. 精准匹配下,按顺序。(如 m.koala.com 这类的名字 )

    2. 假如碰到 *.koala.com 这类全匹配,则首先会匹配具体的再配模糊的。(

    server_name *.koala.com

    server_name m.koala.com

    上面两个,虽然前者写在前面,但是还是会先精准匹配后者。

    八。 server_name 的匹配规则

    按照以下顺序来:

    1. 确切的名字,如 312.koala.com

    2. 以*开始的通配符名字, 如 *.koala.com

    3. 以*结尾的通配符名字, 如 312.*

    4. 第一个匹配正则表达式的名字(按照配置的顺序来)

    待续。。。

    相关文章

      网友评论

          本文标题:nginx学习笔记

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