如何深入理解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个数,并设置相应的进程数。
阅读全文