一、Nginx是如何实现高并发的nginx
service nginx start以后,而后输入#ps -ef|grep nginx,会发现Nginx有一个master进程和若干个worker进程,这些worker进程是平等的,都是被master fork过来的。在master里面,先创建须要listen的socket(listenfd),而后再fork出多个worker进程。当用户进入nginx服务的时候,每一个worker的listenfd变的可读,而且这些worker会抢一个叫accept_mutex的东西,accept_mutex是互斥的,一个worker获得了,其余的worker就歇菜了。而抢到这个accept_mutex的worker就开始“读取请求--解析请求--处理请求”,数据完全返回客户端以后(目标网页出如今电脑屏幕上),这个事件就算完全结束。并发
nginx用这个方法是底下的worker进程抢注用户的要求,同时搭配“异步非阻塞”的方式,实现高并发量。异步
【评析】在nginx.conf里第二行就是work_process,有默认是4的,也能够更改为auto,这个值不是越大越好,要可实际状况而定。socket
二、编写一个Nginx的access模块,要求准许192.168.3.29/24的机器访问,准许10.1.20.6/16这个网段的全部机器访问,准许34.26.157.0/24这个网段访问,除此以外的机器不许许访问。高并发
location/{进程
access 192.168.3.29/24;事件
access 10.1.20.6/16;get
access 34.26.157.0/24;it
deny all;io
}