您现在的位置是:综合 >>正文

nginx web 服务器

综合61961人已围观

简介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:

上一篇:网赌群

下一篇:安卓系统修改器

相关文章

  • 还是python

    综合

    我的电脑里躺着三十多个编程语言的安装包,可每次新建项目,手指还是会自动敲下`python3`。不是没试过别的——Node.js处理并发确实利索,Go部署起来就一个二进制文件,Rust的性能更是让人上瘾 ...

    【综合】

    阅读更多
  • 怎么样做搜索seo优化网站

    综合

    做SEO,最怕一上来就背概念。我见过太多人把“关键词布局”“外链建设”挂在嘴边,结果网站上线三个月,收录还是个位数。问题出在哪?他们把SEO当成了填空题,而不是一门关于“信任”的生意。 搜索引擎的本质 ...

    【综合】

    阅读更多
  • 在下中医黄素小说

    综合

    我姓黄,名素,字不换。坐诊三十年,最烦病人进门就喊“老中医”。中医不老,方子才老。 上周来了个姑娘,二十六岁,做直播带货的。进门就哭,说月经三个月没来,西医院查了激素六项,开了黄体酮,吃完来了,停药又 ...

    【综合】

    阅读更多


友情链接