Nginx 知识总结

1.Nginx特点

高并发,低消耗,热部署,高可用,高扩展

2.Nginx常用命令

nginx -h 查看命令选项
nginx -v 查看版本信息
nginx -tq 验证配置文件是否有错误 默认是验证conf/nginx.conf文件
nginx -s stop : 强制停止nginx
nginx -s quit : 优雅停止nginx
nginx -s reload 不重启nginx的前提下重新加载nginx配置文件

Nginx的并发处理机制

Nginx采用了三种并发机制:多进程,多线程,异步
Nginx的进程分为两类:master进程和worker进程,可以有多个worker进程,所以是多进程的,每个worker进程会有多个线程处理用户请求,worker进程采用的是epoll多路复用器机制来对后端服务器进行处理,后端服务器返回结果后会回调epoll多路复用器(异步)。

Nginx重要配置(nginx.conf)

全局配置
worker_processes :指定工作进程数,默认为1,其值一般设置为cpu核数,或者核数的倍数,不确定是可设置为auto
worker_cpu_affinity : 将worker进程与具体的内核绑定,该设置通过二进制进行,0表示关闭,1表示开启,有几个内核就使用几个二进制位。(比如四核,依次可以为0001,0010,0100,1000).
worker_rlimit_nofile:设置一个worker进程所能打开的最大文件数。也就是文件句柄数,默认是当前linux系统的最大值,查看修改句柄

events模块:
wroker_connections : 设置每个 worker 进程可以并发处理的最大连接数。该值不能超过 worker_rlimit_nofile的值。
accept_mutex :生成一把锁,当新连接来时,只会有一个空闲worker被唤醒来处理连接。默认为on ,如果为off则所有空闲worker都会被唤醒,然后争抢这个连接,只会有一个会处理(“惊群”现象)
accept_mutex_delay:设置队首空闲worker尝试获取互斥锁的时间间隔,默认500毫秒。
multi_accept:默认为on, 多个请求一起分配,如果为off会逐个拿出新连接,按照负载均衡策略,将其分配给当前处理连接个数最少的worker。

http模块
include mime.types:将当前目录(conf 目录)中的 mime.types 文件包含进来。
default_type application/octet-stream:对于无扩展名的文件,默认其为 application/octet-stream 类型
sendfile on:开启linux系统的零拷贝机制,前提是要系统支持(linux6及以上版本支持)。
零拷贝:简单来说就是避免浪费cpu,频繁的用户态到内核态的切换,采用DMA(Direct Memory Access),直接内存访问,将数据直接从内核态发送到socker 缓冲区。
tcp_nopush on:以单独的数据包形式发送 Nginx 的响应头信息,而真正的响应体数据会再以数据包的形式发送,这个数据包中就不再包含响应头信息了。(适用于响应体大的场景)
keepalive_timeout 60:设置客户端与Nginx间所建立的长连接的生命超时时间,时间到达,则连接将自动关闭。单位秒
client_body_timeout 10:设置客户端获取 Nginx 响应的超时时限,即一个请求从客户端发出到接收到 Nginx 的响应的最长时间间隔。若超时,则认为本次请求失败。

location配置:

location /fay {
       root /usr/local; 
       index test.txt;
   }

请求地址为:http://127.0.0.1:80/fay,路径就会匹配上 /fay
root:指定根目录
index: 指定文件名
最终会去找:/usr/local/fay/test.txt文件

Nginx路径匹配规则

优先级由低到高依次是:
普通匹配 < 长路径匹配 < 正则匹配 < 短路匹配 < 精确匹配
普通匹配: location /aaa只要以请求/aaa开头的路径就可命中
长路径匹配: /aaa/bbb,如果请求路径是/aaa/bbb则优先级高于普通匹配
正则匹配:~/aaa~表示这里是正则表达式,默认匹配是区分大小写的。优先级高于长路径匹配,~后面跟*表示不区分大小写
短路匹配:^~/aaa/bbb,以^~开头的匹配路径称为短路匹配,表示只要匹配上,就不再匹配其它的了,即使是正则匹配也不再匹配了。即其优先级要高于正则匹配的。
精准匹配:location =/aaa/bbb,以=开头,优先级最高

Nginx反向代理与负载均衡
upstream www.test.com {
	server 127.0.0.1:8080 weight=1;
	server 127.0.0.2:8080 weight=1;
}
location /test {
	paoxy_pass http://www.test.com
}

Nginx负载均衡策略
轮询:默认的策略,按照各个主机的权重比例依次进行请求分配。
ip_hash:基于客户端ip的方式配置,适合有状态的服务
least_conn:把请求转发给连接数最少的服务器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值