nginx.conf文件结构
三部分组成:
1、全局块
是默认配置文件到events块之间的一部分内容,主要设置一些影响NGINX服务器整体的匹配指令,
所以这些指令的作用域是NGINX服务器全局。
以下是常见配置
1、NGINX服务器的用户组
2、允许生成的worker process数
3、NGINX进程PID存放路径
4、日志的存放路径和类型
5、配置文件引入
2、events块
events块涉及的指令主要影响NGINX服务器与用户的网络连接
以下是常见配置
1、是否开启对多worker process下的网络连接进行序列化
2、是否允许同时接收多个网络连接
3、选取哪种事件驱动模型处理连接请求
4、每个worker process可以同时支持的最大连接数
3、http块
http块是NGINX服务器配置中的重要部分,代理、缓存和日志定义等绝大多数的功能和第三方模块的配置
都可以放在这个模块中
以下是常见配置
1、文件引入
2、MIME-Type定义
3、日志自定义
4、是否使用sendfile传输文件
5、连接超时时间
6、单连接请求数上限等
-
server块
server块和"虚拟主机"的概念有密切联系 虚拟主机: 1、概念:使用技术根据实体服务器创造的虚拟应用,又称虚拟服务器、主机空间或是网页空间 2、作用:为了节省互联网 服务器硬件成本 3、作用范围: 1、虚拟主机技术主要应用于HTTP、FTP及EMAIL等多项服务,将一 台服务器的某项或者 全部服务内容逻辑划分为多个服务单位,对外表现为多个服务器,从而充分利用 服务器硬 件资源。从用户角度来看,一台虚拟主机和一台独立的硬件主机是完全一样的。 2、在使用Nginx服务器提供Web服务时,利用虚拟主机的技术就可以避免为每一个要运行 的网站提 供单独的Nginx服务器,也无需为每个网站对应运行一组Nginx进程。虚拟主机技 术使得Nginx服务 器可以在同一台服务器上只运行一组Nginx进程,就可以运行多个网站和 http块相同,server块也可以包含自己的全局块,同时可以包含多个location块 常见配置: 本虚拟主机的监听配置和本虚拟主机的名称或IP配置。
-
location块
1、概念:从严格意义上说,location其实是server块的一个指令 只是由于其在整个Nginx配置文档中起着重要的作用,而且Nginx服务器在许多功能上的灵活性往往 在location指令的配置中体现出来 所以其单独列为一个“块' 2、作用:基于NGINX服务器收到的请求字符串(例如:server_name/uri-string),除了虚拟主机名称之外的字符串(/uri-string部分)进行匹配 还可以对特定的请求进行处理,地址定向数据缓存和应答控制等功能,还有第三方模块的配置也在location块里完成
http块里面包含多个http全局块,多个server全局块和多个location块,
每个server块中,可以包含全局块和多个location块,在同一嵌套的配置块中,各个部分之间不存在次序关系配置文件支持大量可配置的指令,绝大大数指令不是特定属于某一个块的
同一个指令放在不同层级的块中,其作用域也不同,一般情况下,高一级块中的指令可以作用于自身所在的块和此块包含的所有低层级块。
如果某个指令在两个不同层级的块中同时出现,则采用“就近原则”,即以较低层级块中的配置为准。 比如,某指令同时出现在 http 全局块中和
server 块中,并且配置不同,则应该以 server 块中的配置为准。
worker_processes 1; #全局生效
events {
worker_connections 1024; #在events部分中生效
}
http {
include mime.types; #以下指令在http部分中生效
default_type application/octet-stream;
sendfile off; # 关闭浏览器缓存
keepalive_timeout 65;
charset utf-8; # 设置编码格式
#配置项目
server { #以下指令在http的server部分中生效
listen 80; # 监听端口
# server_name 127.0.0.1; # 配置基于名称的虚拟主机
# 网站配置
location / { #以下指令在http/server的location中生效
root html;
index index.html index.htm;
}
# 错误指定
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}