1、配置文件区块
1.1、全局配置
1.1.1、介绍
配置文件开始到 events
块之间的内容,主要设置一些影响 nginx
服务器整体运行状态的配置。主要包括用户(组),允许生成的 worker process
数,进程 pid
存放路径,日志存放路径和类型及其他配置文件引入。
1.1.2、相关配置项
worker_processes 1;
此项配置值越大,可以支持的并发处理量也就越多,但是会受到软硬件设备的制约。
1.2、事件块
1.2.1、介绍
events
块主要影响 nginx
服务器与用户的网络连接。
1.2.2、相关配置项
worker_connections 1024;
每个工作进程最大的连接数,最大值为1024。
1.3、 HTTP
块
1.3.1、 SERVER
块
-
全局
server
块listen [port]
监听端口server_name [name]
主机名
-
location
块[~|=|~*|^~] [uri]
配置指定路径转发,例:location ~ /one/ {}
proxy_pass [url]
:转发路径
location
路径配置:
=
:用于不包含正则表达式的uri
前,需要请求与配置内容完全匹配。~
:表示uri
包含正则表达式,并区分大小写。~*
:包含正则表达式,并不区分大小写。^~
:不含正则表达式,nginx
直接处理与uri
匹配度最高的请求,忽略其余的正则匹配。
2、功能配置
2.1、负载均衡 upstream
2.1.1、配置服务器
语法:
upstream [name] {
server [domain|ip]:[port];
.... # 多个服务器
}
示例:
upstream lbtest {
server 127.0.0.1:8001;
server 127.0.0.1:8002;
}
2.1.2、使用
location / {
proxy_pass http://lbtest;
}
2.1.3、负载均衡策略
-
轮询
按每一个请求时间顺序分配到不同的服务器,若服务器断开,将不会再分配请求。
-
权重
权重默认为1,权重越高被分配的客户端越多。相当于指定轮询几率,用于服务器性能不均匀的情况。
例如:
server x.x.x.x:x weight=5;
-
iphash
当同一个
ip
请求时,每次都会固定访问同一个服务器。使用方法:在
upstream
块中添加ip_hash;
即可。 -
fair
按服务器的响应时间来分配请求,响应时间段优先分配。
使用方法:在
upstream
块中添加fair;
即可。
2.2、动静分离
2.2.1、介绍
动静分离即为动态请求和静态请求分离,是在动静分离有两种方案:一种是将静态文件独立为单独的域名,放置在独立的服务器中;另一种是动态文件和静态文件混合在一次,使用 nginx
来区分。
通过 location
可以指定不同的后缀名实现不同的请求转发,通过 expires
参数设置,可以使浏览器缓存一段时间,减少与服务器之间的请求和流量。
2.2.2、配置
静态请求配置:
location / {
root f:/Photo;
autoindex on;
expires 3d;
}
autoindex
当请求地址为目录时列出目录中的所有文件
缓存时间配置规则:
expires 30s; #缓存30秒
expires 30m; #缓存30分钟
expires 2h; #缓存2小时
expires 30d; #缓存30天