如何深入理解nginx.conf配置文件(Part1)的每个细节?
摘要:我们使用Nginx主要是通过其配置文件nginx.conf来实现的。按照一定的规则,编写特定的指令,可以帮助我们实现对Web服务的控制!所以,学习Nginx的用法,几乎就是学习nginx.conf! 如何使用本篇文章 本文作为一篇高度总结和
我们使用Nginx主要是通过其配置文件nginx.conf来实现的。按照一定的规则,编写特定的指令,可以帮助我们实现对Web服务的控制!所以,学习Nginx的用法,几乎就是学习nginx.conf!
如何使用本篇文章
本文作为一篇高度总结和罗列nginx.conf中所有的基础配置项,循规蹈矩地按照文章的顺序阅读的方式不可取
笔者建议所有读者,先看目录,掌握Nginx都有哪些基础的配置块,再想要了解那一个配置块时,再详细去看
作为一篇字典类的文章,建议读者善用浏览器的全文查找功能,按Ctrl + F调出查找功能,搜索你感兴趣的关键字,针对性地学习
内容导览
nginx.conf的基本结构
全局配置块
user
worker_processes
其他
events块
http块
http全局
公有配置
keepalive
静态资源优化配置
静态资源的压缩
综合实例
Gzip和sendfile共存问题
缓存
ResponseHeader中的缓存
清除缓存
不缓存
log
负载均衡
第七层负载均衡
第七层的均衡策略
第四层负载均衡
nginx.conf的基本结构
配置文件一共由三部分组成,分别为全局块、events块和http块。
在http块中,又包含http全局块、多个server块。
每个server块中,可以包含server全局块和多个location块。
在同一配置块中嵌套的配置块,各个之间不存在次序关系。
牢牢把握住这张图,可以帮助初学者快速建立起对nginx.conf的初步印象。
nginx.conf文件在哪里?
在windows平台下,该配置文件在其数据包的conf目录下
在CentOS7平台,如果使用源码安装,则配置文件也在安装位置的conf目录下;如果使用yum安装,则配置文件在/etc/nginx/目录下
全局查找nginx.conf文件:find / -name nginx.conf
配置文件的语法规则:
配置文件由指令与指令块构成;
每条指令以 ; 分号结尾,指令与参数间以空格符号分隔;
指令块以 {} 大括号将多条指令组织在一起;
include 语句允许组合多个配置文件以提升可维护性;
使用 # 符号添加注释,提高可读性;
使用 $ 符号使用变量;
部分指令的参数支持正则表达式;
全局配置块
设置一些影响Nginx服务器整体运行的配置指令,这些指令的作用域是Nginx服务器全局。
user
user user [group];
user:指定可以运行Nginx的用户
group:指定可以运行Nginx的用户组(可选项)
如果user指令不配置或者配置为user nobody nobody,则默认所有用户都可以启动Nginx进程。
该属性也可以在编译的时候指定,语法如下`./configure --user=user --group=group`,如果两个地方都进行了设置,最终生效的是配置文件中的配置。
worker_processes
master_process on|of (默认on)
是否以master/worker方式进行工作,在实际的环境中 nginx是以一个master进程管理多个worker进程的方式运行的。
关闭后nginx就不会fork出worker子进程来处理请求,而是用master进程自身来处理请求,即使用"worker_processes number"所指定进程数;
worker_processes 个数;
指定工作进程的个数,默认是1个。
具体可以根据服务器cpu数量进行设置,比如cpu有4个,可以设置为4。
如果不知道cpu的数量,可以设置为auto,nginx会自动判断服务器的cpu个数,并设置相应的进程数。
