nginx 是什么
一句话总结
Nginx 是一个高性能的 Web 服务器和反向代理,通过事件驱动架构处理 HTTP 流量,在我们的架构中跑在 n1 机器上,负责所有站点的请求路由和 TLS 终端。
🤔 为什么会有它 / 解决了什么问题
传统的 Apache 服务器每个连接开一个进程,高并发下内存爆炸。Nginx 用事件驱动模型让单进程处理成千上万的并发连接,解决了 C10K 问题。
🔍 具体原理 / 运作逻辑
Nginx 用异步非阻塞的事件循环处理请求。主进程读取配置并管理工作进程,工作进程执行实际 I/O 操作。每个请求在单个连接上处理,不创建新进程。
更硬核的技术细节(点击展开)
Nginx worker 数量通常等于 CPU 核数。每个 worker 独立运行,通过操作系统的事件机制(epoll/kqueue)在单个线程内处理数千个连接。
🧭 什么情况下会用到 / 什么场景会遇到它
- 站点创建后 Press 自动通过 Agent Job 调用 nginx_reload_manager 更新 upstream 路由
- 浏览器访问
*.getgrowth.app的任何站点,请求先到达 n1 的 nginx,再由它转发给对应 bench 容器
🛠️ 怎么上手 / 在哪操作
Nginx 配置由 Press 的 Agent 管理和渲染,日常不需要手动编辑;排查问题时 SSH 到 n1 机器检查 /etc/nginx/。
⚖️ 副作用 / 代价 / 取舍
- 动态模块不支持热加载,增加功能需要重新编译或换用 OpenResty
- 配置语法严格,少个分号就导致 reload 失败,生产环境改配置必须
nginx -t先测试
🕰️ 来历
- 谁提出/创造的:俄罗斯工程师 Igor Sysoev
- 什么时候出现的:2004 年(开源发布),2011 年成立公司 Nginx Inc.
🔗 关联 / 经常一起出现的概念
- [反向代理 (Reverse Proxy)]:Nginx 在 Growth App 中的核心角色——接受客户端请求,转发给上游的 bench 容器,再将结果返回给客户端
- SSL]:Nginx 负责 TLS 终端,外部 HTTPS 在 n1 解密为内部 HTTP 转发给后端
⚠️ 注意事项 / 常见误区
配置文件改完后必须 nginx -t 验证,直接 reload 畸形配置会导致 nginx 不启动,全站下线。
📎 记忆锚点
食堂打饭窗口的排队引导员——你告诉我你要哪个窗口(域名),我告诉你该排哪条队(upstream)。
📝 更新日志
| 日期 | 改动 | 原因 |
|---|---|---|
| 2026-07-13 | 首次创建 | - |