一、Nginx配置文件的整体结构
从图中可以看出主要包含以下几大部分内容:
1. 全局块
该部分配置主要影响Nginx全局,通常包括下面几个部分:
-
配置运行Nginx服务器用户(组)
-
worker process数
-
Nginx进程PID存放路径
-
错误日志的存放路径
-
配置文件的引入
2. events块
该部分配置主要影响Nginx服务器与用户的网络连接,主要包括:
-
设置网络连接的序列化
-
是否允许同时接收多个网络连接
-
事件驱动模型的选择
-
最大连接数的配置
3. http块
-
定义MIMI-Type
-
自定义服务日志
-
允许sendfile方式传输文件
-
连接超时时间
-
单连接请求数上限
4. server块
-
配置网络监听
-
基于名称的虚拟主机配置
-
基于IP的虚拟主机配置
5. location块
-
location配置
-
请求根目录配置
-
更改location的URI
-
网站默认首页配置
二、upstream 模块
upstream 这个模块是写一组被代理的服务器地址 (即定义的后端服务器列表中选取一台服务器接受用户的请求 ),然后配置负载均衡的算法。
以下是一个简单的Nginx配置示例,展示了upstream模块的基本用法:
upstream web_test {
server 10.10.2.100:80;
server 10.10.3.100:80;
}
server {
....
location / {
proxy_pass http://web_test; --请求转向 web_test 定义的服务器列表
}
在Nginx中,upstream模块用于定义一组后端服务器,这些服务器共同处理客户端请求。通过upstream模块,可以配置负载均衡、高可用性和反向代理等功能。在upstream块中,可以指定多个服务器并定义它们的一些属性,如权重、最大连接数等。
在这个示例中,定义了一个名为web_test
的upstream块,里面包含了两个后端服务器的地址和端口号。Nginx可以针对这些服务器执行负载均衡策略,比如轮询、IP哈希、最小连接数等,以实现请求的分发。
通过upstream模块,Nginx能够实现高效的负载均衡和故障转移,提高了系统的可靠性和性能