Nginx:互联网上每三个网站就有一个在跑它
文章目录
Nginx:互联网上每三个网站就有一个在跑它
nginx 在 GitHub 上拿到了 30,306 Star。
从 2004 年发布到现在,nginx 支撑了全球超过三分之一的网站流量。Web 服务器、反向代理、负载均衡、API 网关、内容缓存:一个软件全干了。BSD 协议开源,免费。

1、 Master-Worker 进程模型
nginx 不和 Apache 比谁更占内存。它的架构是 Master 进程带一群 Worker。
Master 管配置、管 Worker 生命周期。Worker 负责干活:处理 HTTP 请求。Worker 数量可以自动匹配 CPU 核数,8 核机器跑 8 个 Worker,负载摊到每个核上。
多 Worker 之间通过共享内存同步数据。举个例子:限流场景需要统计某客户端在时间段内的访问次数,所有 Worker 读写同一块共享内存,不需要引入外部缓存。一个单机 nginx 能扛几十万并发连接,不是什么黑科技,就是进程模型切得合理。
2、 功能都在模块里
nginx 核心很小,功能靠模块堆。
HTTPS?ngx_http_ssl_module。负载均衡?ngx_http_upstream_module。限流?ngx_http_limit_req_module。
从 1.9.11 开始支持动态模块。不用重新编译,下载后加载就行。njs(用 JavaScript 扩展 nginx)就是动态模块的例子。当然也可以静态编译进去,看场景需要。
拿到二进制后,nginx -V 看一下所有内置模块,心里有数。
3、 不写代码,写配置
nginx 的行为全由配置文件控制。一种叫 Directives 的参数定义了所有行为:
- 代理请求到哪个后端
- 负载均衡用轮询还是最少连接
- 每秒允许多少次请求
- 静态文件缓存多久
- SSL 证书放哪个路径
改完配置,nginx -s reload,不停机热加载。对于线上服务来说,这个操作很实用。
配置文件结构像一棵嵌套的树:最外层是全局配置,往里依次是 events、http、server、location。刚开始会觉得层级多,习惯之后发现这和实际部署逻辑一致:一台服务器,多个域名,不同 URL 路径,匹配到不同处理规则。

4、 Stable 和 Mainline 怎么选
nginx 同时维护两个分支。
Stable 是稳定版,只合入 Mainline 上验证过的关键修复。Mainline 从 master 构建,新功能先落地。生产环境用 Stable,测试环境用 Mainline,官方推荐这个策略。升级走包管理器,不需要手动下载。
5、 从源码编译
想自己编译?三步:
# 基础依赖
sudo apt install gcc make libpcre3-dev zlib1g-dev
# 如需 HTTPS
sudo apt install libssl-dev
# 编译安装
auto/configure
make
sudo make install
编译后的二进制在 objs/nginx,安装到 /usr/local/nginx/。跑起来后 curl localhost,返回 “Welcome to nginx!” 说明装好了。
Windows 版本目前是概念验证阶段,官方建议只用于开发和测试。
`,返回 “Welcome to nginx!” 说明装好了。
Windows 版本目前是概念验证阶段,官方建议只用于开发和测试。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)