您现在的位置是:知识 >>正文
nginx web 服务器
知识48735人已围观
简介nginx 这名字念起来像 engine-x,2004 年由一个俄罗斯人 Igor Sysoev 写出来,最初是为了解决 C10K 问题——也就是同时一万个连接。那时候 Apache 是绝对老大,但它 ...
nginx 这名字念起来像 engine-x,服务2004 年由一个俄罗斯人 Igor Sysoev 写出来,服务最初是服务为了解决 C10K 问题——也就是同时一万个连接。那时候 Apache 是服务绝对老大,但它每个连接都要吃掉不少内存,服务一万个并发就能让服务器气喘吁吁。服务nginx 不一样,服务它用事件驱动、服务异步非阻塞的服务方式处理请求,一个进程能扛住十万甚至百万连接。服务这不是服务夸张,是服务真实的生产数据。
我见过最典型的服务例子,一家电商公司在双十一前夜把架构从 Apache 切到 nginx,服务同样的服务四台机器,原先峰值时 CPU 飙到 95%,切过去之后直接降到 30% 出头。运维老哥当时在群里发了句“卧槽,这玩意儿是怪物吧”。确实,nginx 就像个精瘦的跑者,不背多余的包袱,只专注做一件事——转发请求。
它的配置文件也很有意思,不像 Apache 那样把指令散落在 .htaccess 里到处找,nginx 把所有配置集中在 nginx.conf 一个文件里,用层级块结构组织。server 块定义虚拟主机,location 块匹配 URI 路径。你写配置的时候就像在搭积木,每一层都清晰可查。不过这也意味着每次改动都要 reload 进程,好在 nginx 支持平滑重载——master 进程先读新配置,语法检查通过就拉起新的 worker,旧 worker 处理完手头请求就自动退出。整个过程对用户零感知,这设计在十几年前算是非常前卫了。
有人觉得 nginx 就是个 web server,这有点低估它了。它最被低估的能力其实是反向代理和负载均衡。我见过不少团队,后端用 Java 或者 Go 写一堆微服务,前面全挂一个 nginx 做入口。upstream 模块里配几个后端地址,轮询、IP 哈希、最少连接数,想怎么分就怎么分。更妙的是它还能做健康检查——后端挂了一台,nginx 自动把流量切到别的节点,整个过程不需要人工介入。这种“默默干活不添乱”的性子,确实招人喜欢。
静态文件处理也是 nginx 的强项。sendfile 系统调用直接在内核态把文件从磁盘搬到网卡,不走用户态缓冲区,速度比传统 read-write 模式快好几倍。我测试过,一个 1MB 的图片,nginx 平均响应时间在 5ms 左右,Apache 要 15ms 往上。当然,这跟操作系统调优也有关系,但 nginx 的设计确实把硬件性能榨得更干净。
要说缺点,nginx 的模块系统不算友好。官方模块就那么二十来个,想加个第三方功能得重新编译源码,不像 Apache 那样动态加载 .so 文件。不过好在 OpenResty 这个基于 nginx 的发行版把 lua-nginx-module 集成进去了,你可以在 location 里直接写 lua 脚本做复杂逻辑,算是补上了一块短板。
现在 nginx 已经快二十岁了,市占率长期排在 web server 第一。它没搞什么花哨功能,就是稳、快、省内存。你要是管过几千台服务器的集群,就会明白这种“无聊”有多珍贵。写配置的时候多花点心思,后面运维能少掉一半头发。
Tags:
上一篇:非法网站举报
下一篇:彩虹云商城最新模板源码
相关文章
大数据彩票
知识彩票店老板老周,最近换了个大屏显示器。他告诉我,以前用老电脑跑数据,开奖前半小时就卡得不行,现在能同时开十几个走势图页面,还能实时看“冷热号”的统计曲线。他说这叫“大数据选号”,店里好几个老彩民,每天 ...
【知识】
阅读更多渗透里的小丫头谁演的
知识《渗透里的小丫头谁演的》那丫头叫陈紫函。对,就是后来在《白蛇传》里演小青的那位。可当年《渗透》播的时候,没几个人记得住她的名字,大家只喊她“小丫头”。戏里她演的是许忠义的女儿,一个被卷进谍战漩涡的单纯 ...
【知识】
阅读更多南澳岛景点宋井蛙池故事
知识南澳岛的宋井景区,门票四十块,本地人凭身份证半价。那天下午我蹲在蛙池边数了二十分钟蝌蚪,一只蜻蜓落在池沿的苔藓上,翅尖沾着水珠,阳光一照,亮得像碎玻璃。 这口蛙池实在小得不起眼,目测不过十步见方。池水 ...
【知识】
阅读更多