闲话
今天从下午三点学到了晚上将近十点,前一章节的高并发给我整的够呛,各种问题,但是自己跟自己约定了,今天一定要结束nginx的学习
基本要点
1、Nginx分为单工作进程和多工作进程两种模式
在单工作进程模式下,除主进程外,还有一个工作进程,工作进程是单线程的;在多工作进程模式下,每个工作进程包含多个线程。nginx默认使单工作进程模式
2、master和worker
1)master进程(管理进程):
接收来自外界的信号、向worker分配任务、监控worker的运行状态、当woker进程退出后(异常情况下),会自动重新启动新的woker进程
2)worker进程
主要是负责接受和处理请求,多个worker采用争抢的方式处理请求
master和worker协作方式如下
3、worker数的设置应该和服务器CPU数量一致
4、worker连接数worker_connection
一般为2或者4个,如果worker只访问静态资源时,就只有2个
如果worker既要访问静态资源又要访问动态资源(例如tomcat),那就有4个连接
5、假如一个nginx有一个master和四个worker,每个worker支持的最大连接数是1024,那么nginx支持的最大并发数是多少?
一般这种问题我们就需要分2种情况去考虑
1)普通的静态资源访问时:
最大并发数 = worker_connection*worker_process/2
2)如果nginx还作为反向代理,需要去访问动态资源时
最大并发数 = worker_connection*worker_process/4
6、采用多进程的好处
1)对于每个worker进程来说,独立的进程,不需要加锁,所以省掉了锁带来的开销,而且便于排查问题和编程
2)采用独立的进程,可以让互相之间不会影响,一个进程退出后,其它进程还在工作,服务不会中断,master进程则很快启动新的worker进程。
个人感觉自己分析的不够详细,后面还会回过头来更新
如有错误,欢迎指正
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/136792.html