NGINX:全球使用量最大的 Web 服务器
NGINX:全球使用量最大的 Web 服务器
NGINX 在 GitHub 上拿到了超过 3 万颗 Star,是目前全球使用量最大的 Web 服务器软件。

NGINX 的定位不只是一台 Web 服务器。它同时是高性能负载均衡器、反向代理、API 网关和内容缓存。这些功能全部以免费开源的形式提供,使用 BSD 2-Clause 协议发布。

架构设计
NGINX 采用多进程模型运行。一个 master 进程负责管理 worker 进程和读取配置文件,若干 worker 进程处理实际的请求数据。worker 进程的数量可以在配置中写死,也可以设为自动匹配 CPU 核心数。多个 worker 进程之间通过共享内存交换数据。
这套架构决定了 NGINX 处理高并发的能力。每个 worker 进程独立处理请求,互不阻塞,单台机器就能撑住大量的并发连接。
模块化设计
NGINX 的功能通过模块扩展。每个模块提供一组可配置的特性,官方文档列出了全部模块清单。模块分为静态和动态两种:静态模块在编译时写入二进制文件,动态模块可以在运行时加载和卸载。
1.9.11 版本之后加入的动态模块支持让 NGINX 的灵活性提升了一个层级。NGINX JavaScript (njs) 是其中比较常用的动态模块,可以用 JavaScript 语法扩展 NGINX 的功能。
配置方式
NGINX 通过纯文本配置文件管理,参数以 directive 的形式写入。配置文件的结构在官方文档中有完整说明。可用的 directive 取决于当前编译了哪些模块。
安装
NGINX 提供所有主流操作系统和 Linux 发行版的二进制包。官方建议使用仓库中提供的官方包,而非发行版自带的社区版本,这样可以拿到最新的功能和安全补丁。
二进制版本分为 stable 和 mainline 两条线。stable 只接受关键修复,mainline 包含最新的特性和 bugfix。
Linux 上的安装走包管理器。首次安装需要添加官方 NGINX 软件源,之后的升级直接用包管理器完成即可。Windows 版本目前还处于概念验证阶段,只建议用于开发和测试。
如果需要从源码编译,流程也比较直接:
sudo apt update
sudo apt install gcc make libpcre3-dev zlib1g-dev
git clone https://github.com/nginx/nginx.git
cd nginx
auto/configure
make
sudo make install
编译完成后二进制文件在 /usr/local/nginx/sbin/nginx,启动后用 curl localhost 测试,看到 “Welcome to nginx!” 的 HTML 输出就说明正常运行了。
核心使用场景
NGINX 官方文档覆盖了几个常见的使用方向:
- TLS 加密: 配置 HTTPS 服务器,保护传输中的数据
- 负载均衡: 将请求分发到多台后端服务器
- 速率限制: 作为 API 网关时控制请求频率
- 内容缓存: 充当 CDN 边缘节点,缓存静态内容
每个方向在官方文档和博客中都有详细的配置指南。
社区
NGINX 有活跃的社区论坛(community.nginx.org),遇到问题可以在这里讨论。官方博客定期发布使用技巧和配置方案。完整的文档托管在 nginx.org,包括入门指南、配置手册和开发指南。商业支持和培训由 F5 公司提供。代码仓库在 GitHub 上保持活跃开发状态,贡献代码需要遵循项目的 CONTRIBUTING 指南。
训由 F5 公司提供。代码仓库在 GitHub 上保持活跃开发状态,贡献代码需要遵循项目的 CONTRIBUTING 指南。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐



所有评论(0)