Nginx服务器的安装部署
Nginx在编译时选择是否携带各种的功能模块
所以在这里可以根据需求生成多个具有特殊功能的nginx服务器
nginx.conf文件的结构
全局块:主要设置一些影响Nginx服务器整体运行的配置指令,通常包括配置运行Nginx服务器的用户(组)、允许生成的worker process数、Nginx进程PID存放路径、日志的存放路径和类型以及配置文件引入等。
events块:影响Nginx服务器与用户的网络连接。常用到的设置包括是否开启对多worker process下的网络连接序列化,是否允许同时接收多个网络连接,选取那种事件驱动模型处理连接请求,每个worker process可以同时支持的最大连接数等。(这个模块对Nginx性能影响比较大)
http块:Nginx服务器配置中的重要部分,代理、缓存和日志定义等绝大数的功能和第三方模块的配置都可以放在这个模块中。
server块:server块和“虚拟主机”密切相关,每一个http块可以包含多个server块,而每个server块就相当于一台虚拟主机。通过这种虚拟主机技术使得Nginx服务器可以在同一台服务器上只运行一组Nginx进程,就可以运行多个网站。(并且每个网站都可以配置一个不同VIP)
location块:每个server块中可以包含多个location.location其实server块的一条指令,通过对请求字符串进行匹配,对特定的请求进行处理。地址定向、数据缓存和应答控制等功能都是在部分实现。许多第三方模块的配置也在location块提供功能。
全局块
配置运行Nginx服务器的用户
events块
配置运行生成的worker process数(即Nginx的进程数,默认为1)
workprocess是Nginx服务器实现并发处理服务的关键所在。其值越大,可以支持的并发处理量也会越多,但实际上它还要受软硬件等的限制。
设置网络连接的序列化
accept_mutex,当其设置为开启的时候,将会对多个Nginx进程接收连接进行序列化,防止多个进程对连接的争抢。
默认是开启状态
设置是否允许同时接收多个网络连接
一个Nginx进程有能力同时接收多个新到达的网络连接。
默认是关闭的。
配置事件驱动模型的选择
Nginx服务器提供了多种事件驱动模型来处理网络信息。
http块
配置Nginx进程PID存放路径
Nginx进程作为系统的守护进程运行,我们需要在某文件中保存当前运行程序的主进程号。
通常默认存放在 logs/nginx.pid
记录Nginx服务器提供服务过程应答前端请求的日志
默认存放在 logs/access.log
MIME-Type
MIME-Type是网络资源的媒体类型,通过它使得Nginx可以识别前端请求的资源类型。
location块
location通常结合正则表达式
“=”:用于标准uri前,要求请求字符串与uri严格匹配。
“~”:用于表示uri包含正则表达式,并且区分大小写
“~*”:用于表示uri包含正则表达式,不区分大小写
“^~”:用户标准uri前,会对特殊字符进行编码处理,寻找匹配度最高的一个location处理请求。
多模块配置
配置错误日志的存放路径
在全局块、http块和server块中都可以对Nginx服务器的日志进行相关配置。
通常默认存放在 logs/error.log
配置允许sendfile方式传输文件
此指令可以在http块、server块或者location块进行配置
提供文件下载服务时,不需要将文件内容先读到应用缓冲区,在调用send接口发送出去,可以直接使用sendfile(零拷贝)接口直接发送出去。
配置连接超时时间
与用户建立会话连接后,服务器可以使这些连接打开一段时间。
此指令可以出现在http块、server块或location块使用
默认的连接超时时间是75s
单连接请求数上限
Nginx服务器端和用户端建立会话连接后,用户端通过此连接发送请求数的上限。
此指令可以在server块和location块中,默认值是100.
基于IP配置Nginx的访问权限
可以在http块、server块或者location块
192.168.1.0/24;能够被访问,这个规则类似switch匹配成功即会退出向下搜索。
基于IP地址分配和网络监听配置虚拟主机
首先为eth1添加两个IP别名192.168.1.31与192.168.1.32
在nginx.conf配置两台基于IP的虚拟主机