基础
- nginx由模块组成,这些模块由配置文件中指定的指令控制。
- 指令被分为简单的指令和块指令。
- 一个简单的指令由空格分隔的名称和参数组成,以分号结尾。
- 块指令具有与简单指令相同的结构,但不是以分号结尾,而是以大括号包围的一组附加指令结束。
- 如果一个块指令可以在括号内包含其他指令,则称为上下文。
例子:
http {
server {
location / {
root /data/www;
}
}
}
一般来说,配置文件可能包括几个server
块,它们分别通过端口和服务器名来区分。一旦nginx决定哪个服务器处理一个请求,它会根据块内定义的指令参数来测试请求头中指定的URI 。
location 指令
默认值:无,所属上下文:server,语法:
#参数有4种: = 或 ~ 或 ~* 或 ^~
location [=|~|~*|^~] /uri/ { ... }
正则表的匹配前缀:~*
或 ~
。前者区分大小写,后者不区分。例子:
#匹配所有后缀为以下的资源,不区分大小写
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ { ... }
字符串的匹配前缀:^~
。例子:
#匹配以/image/开头的所有资源
location ^~ /images/
匹配优先级:
1. =
2. ^~
3. ~*
或 ~
4. /
nginx如果匹配到一个,则不会再继续匹配了。