nginx的配置文件详细说明及其运行原理

nginx的配置文件nginx.config的详细说明,大体上我们可以将其分为三部分:

第一部分,全局块:

  打开配置文件,从配置文件从开始到events 块之间的内容,就是一些会影响整个nginx服务器运行的指令,包括用户(组),日志存放路径等等,但是如图所示:


全局块.png

初始化的nginx配置文件全局块大多数是注释起来的,只有一个配置生效,"worker_processes 1;"这个配置是整个nginx比较重要的参数,它表示nginx可以处理的并发数,数字越大可处理的并发处理量也就越多,但是会受到硬件和软件的条件约束。

第二部分,events块:

如图:
events块.png

  这部分的配置关系到nginx服务器与网络用户的连接,常用的设置包括是否开启对多work process下的网络连接进行序列化,是否允许同时接收多个网络连接,选取哪种事件驱动模型来处理连接请求,每个wordprocess可以同时支持的最大连接数等。
  这儿的最大连接数一般与cup数量有关,可以灵活配置,上图就表示最大连接数为1024.

第三部分,Http块:

  除了events之外的被http括起来的部分,这部分是nginx中配置最频繁的部分,代理,缓存,日志等绝大多数功能和第三方模块都放在这里。值得注意的是http又分为http全局块、server块。

http全局块:
  http全局块配置的指令包括文件引入、MIME-TYPE 定义、日志自定义、连接超时时间、单链接请求数上限等。
httpserver块:
  这块和虚拟主机有密切关系,虚拟主机从用户角度看,和一台独立的硬件主机是完全一样的,该技术的产生是为了节省互联网服务器硬件成本。每个http块可以包括多个server块,而每个server块就相当于一个虚拟主机。
而每个server块也分为全局server 块,以及可以同时包含多个locaton块。
1、全局server块
  最常见的配置是本虚拟机主机的监听配置和本虚拟主机的名称或IP配置。
2、location 块
  一个server 块可以配置多个location 块。这块的主要作用是基Nginx服务器接收到的请求字符串(例如server_ _name/uri-string) , 对虚拟主机名称(也可以是IP别名)之外的字符串(例如前面的/uri-string )进行匹配,对特定的请求进行处理。地址定向、数据缓存和应答控制等功能,还有许多第三方模块的配置也在这里进行。

nginx的原理

说完了概念我们再来看看nginx的运行原理,我们查看nginx的进程可以发现,nginx有两个不同的进程运行,一个是master,另一个是worker如图:
nginx进程.png

master就像是管理员,请求过来后由master进程分配给worker进程,一个master可以有多个worker进程,就想公司的领导和员工一样,接受请求的是master但是真正干活的确实worker,两者关系如图:


关系图.png

有图可以看出每一个worker由多个client连接,那他们到底是怎么工作的呢,我们在看一张图:
关系图2.png

不难看出每一个客户端client发送的请求由master接受后会由每一个worker以争抢的方式去处理,每一个worker之间都是互相独立的,谁竞争到就由谁来处理。而这种机制也带来了一定的好处:
1.因为每一个进程都是独立的,所以这种模式可以有利于热部署,不用停止nginx服务就可以跟新配置。而正在处理请求的worker也会在处理结束后自动加载新配置,不会停止服务。
2.因为每个worker都互相独立,所以有一个worker出现问题,其他的worker 也会继续争抢,实现请求过程,不会造成服务中断。
一般worker的数量与cpu数量一致,这样就可以将系统的性能提升到最大。

这里有两个思考:
1.发送请求,占用了woker的几个连接数?
   2 或者 4 个,如果请求的是静态请求,不需要连接tomcat那就是两个,如果是动态请求那就是四个。

  1. nginx有一个master,有四个woker,每个woker支持最大的连接数1024,支持的最大并发数是多少?
    ●普通的静态访 问最大并发数是:1024* 4/2=2048;
    ●而如果是HTTP 作为反向代理来说,最大并发数量应该是1024 *4/4=1024;
    这里是按照实际的worker数量计算。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343

推荐阅读更多精彩内容

  • I/O模型: 阻塞型、非阻塞型、复用型、信号驱动型、异步 同步/异步:关注消息通知机制 消息通知:同步:等待对方返...
    Net夜风阅读 1,989评论 0 1
  • 最近感觉很多东西在运用到一定的程度之后,会发现原来是自己了解到的不够。一方面限于实际运用到的不多,一方面可能是因为...
    java成功之路阅读 447评论 0 1
  • Nginx简介 解决基于进程模型产生的C10K问题,请求时即使无状态连接如web服务都无法达到并发响应量级一万的现...
    魏镇坪阅读 1,985评论 0 9
  • 刚刚本在看词 ——— 踏莎行 秦观 雾失楼台,月迷津渡,桃源望断无寻处。可堪孤馆闭春寒,杜鹃声里斜阳暮。驿寄梅花...
    Leonor_Z阅读 549评论 5 2
  • 有时我期待冰箱里有一只来自南极的企鹅, 虽然她会突然消失,就像她刚出现的那样。 但她会让我的生活回到了正轨, 让我...
    不二文舟舟阅读 205评论 0 0