Nginx配置文件的通用语法介绍
- Nginx二进制文件中以及指定它包含了哪些模块,但每一个模块都会提供独一无二的配置语法,这些配置语法会遵循同样的语法规则。
- 配置文件由指令与指令块构成
- 如http{}就是一个指令块
- include mine.types; 这是一条指令
- 每条指令都是以分号结尾
- 指令和参数间以空格符号分隔
- include是一个指令名,中间以一个或多个空格来分隔,mine.typess就是它的参数,可以具备一个或多个参数。
- 两个指令间不是以回车作为分隔符,以分号分隔。
- 指令块以{}大括号将多条指令组织在一起
- 指令里还可以包含其他指令块。
- 有些指令块可以有名字,如upstream 后面有 thwp,有些没有名字,如http,sever后面就没有名字
- 什么样的指令有名字什么样的指令没有名字
- 这是由提供这个指令块的Nginx模块来决定的。它可以决定指令块后面有一个或者多个参数或者没有参数。
- include语句允许组合多个配置文件以提升可维护性
- 例子中,mine.typess其实里面含有很多条不同文件的后缀名与http协议中mine格式的对照关系表
- 这些关系指令其实是非常的耦合在一起的,和我们的语法关联不大,所以用了include以后文件可读性好了很多。
- 使用#符号添加注释,提高可读性
- 如 #Nginx配置语法
- 使用$符号使用变量
- 如binary_remote_addr,是一个变量不是这个模块提供的,是Nginx框架提供的
- 部分指令的参数支持正则表达式
- 如location后面 ~* \.
- 配置文件中涉及到时间
- 如expire 3m;
- 配置文件中涉及到空间
- 如limit req zone $binary remote addr zone=one:10m
- 开了10m大小的内存空间,以给不同的worker去使用
- http配置中有四个块:
- 如案例中,http所有的指令都是由http模块去解析,执行的
- 一个非http模块是无法去解析这里面的指令的