nginx学习笔记

一. 安装

详见 这里

二. 基本命令

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学习笔记)