nginx/nginx

GitHub: nginx/nginx

全球最流行的开源 Web 服务器和高性能负载均衡器,提供反向代理、API 网关和内容缓存能力。

Stars: 29599 | Forks: 7782

NGINX Banner [![项目状态:活跃 – 该项目已达到稳定、可用状态,并且正在积极开发中。](https://www.repostatus.org/badges/latest/active.svg)](https://www.repostatus.org/#active) [![社区论坛](https://img.shields.io/badge/community-forum-009639?logo=discourse&link=https%3A%2F%2Fcommunity.nginx.org)](https://community.nginx.org) [![许可证](https://img.shields.io/badge/License-BSD%202--Clause-blue.svg)](/LICENSE) [![行为准则](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg)](/CODE_OF_CONDUCT.md) NGINX(发音为 "engine x" 或 "en-jin-eks")是全球最流行的 Web 服务器、高性能负载均衡器、反向代理、API 网关和内容缓存。 NGINX 是免费且开源的软件,根据简化的 [2-clause BSD-like license](LICENSE) 条款分发。 企业发行版、商业支持和培训由 [F5, Inc](https://www.f5.com/products/nginx) 提供。 # 目录 - [工作原理](#how-it-works) - [模块](#modules) - [配置](#configurations) - [运行时](#runtime) - [下载和安装](#downloading-and-installing) - [稳定版和主线版二进制文件](#stable-and-mainline-binaries) - [Linux 二进制安装过程](#linux-binary-installation-process) - [FreeBSD 安装过程](#freebsd-installation-process) - [Windows 可执行文件](#windows-executables) - [动态模块](#dynamic-modules) - [NGINX 入门](#getting-started-with-nginx) - [安装 SSL 证书并启用 TLS 加密](#installing-ssl-certificates-and-enabling-tls-encryption) - [负载均衡](#load-balancing) - [速率限制](#rate-limiting) - [内容缓存](#content-caching) - [从源代码构建](#building-from-source) - [安装依赖项](#installing-dependencies) - [克隆 NGINX GitHub 仓库](#cloning-the-nginx-github-repository) - [配置构建](#configuring-the-build) - [编译](#compiling) - [二进制文件和安装位置](#location-of-binary-and-installation) - [运行和测试已安装的二进制文件](#running-and-testing-the-installed-binary) - [提问和报告问题](#asking-questions-and-reporting-issues) - [贡献代码](#contributing-code) - [更多帮助和资源](#additional-help-and-resources) - [更新日志](#changelog) - [许可证](#license) # 工作原理 NGINX 是一款可安装的软件,为所有主要操作系统和 Linux 发行版提供二进制包。有关兼容系统的完整列表,请参阅 [Tested OS and Platforms](https://nginx.org/en/#tested_os_and_platforms)。 ## 模块 NGINX 由单独的模块组成,每个模块通过提供额外的可配置功能来扩展核心功能。有关官方模块的完整列表,请参阅 [nginx documentation](https://nginx.org/en/docs/) 底部的“Modules reference”。 NGINX 模块可以作为静态或动态模块构建和分发。静态模块在构建时定义、编译并分发到生成的二进制文件中。有关动态模块的工作原理以及如何获取、安装和配置它们的更多信息,请参阅 [Dynamic Modules](#dynamic-modules)。 ``` nginx -V ``` ## 配置 NGINX 具有高度的灵活性和可配置性。软件的配置是通过基于文本的配置文件完成的,这些文件接受称为“[Directives](https://nginx.org/en/docs/dirindex.html)”的参数。有关 NGINX 配置文件工作原理的全面描述,请参阅 [Configuration File's Structure](https://nginx.org/en/docs/beginners_guide.html#conf_structure)。 ## 运行时 NGINX 并非作为单个单体进程运行,而是设计为作为进程集合运行,以突破操作系统进程限制实现扩展。它们包括: - 一个“master”进程,负责维护 worker 进程,以及读取和评估配置文件。 - 一个或多个“worker”进程,负责处理数据(例如 HTTP 请求)。 [worker processes](https://nginx.org/en/docs/ngx_core_module.html#worker_processes) 的数量在配置文件中定义,可以针对给定配置进行固定,也可以自动调整为可用 CPU 核心的数量。在大多数情况下,后一种选项可以在可用系统资源之间最佳地平衡负载,因为 NGINX 旨在将工作高效地分配给所有 worker 进程。 # 下载和安装 按照以下步骤下载并安装预编译的 NGINX 二进制文件。您也可以选择 [build NGINX locally from source code](#building-from-source)。 ## 稳定版和主线版二进制文件 NGINX 二进制文件构建并分发为两个版本:稳定版和主线版。稳定版二进制文件从稳定分支构建,仅包含从主线版本反向移植的关键修复。主线版二进制文件从 [master branch](https://github.com/nginx/nginx/tree/master) 构建,包含最新的功能和错误修复。您需要 [decide which is appropriate for your purposes](https://docs.nginx.com/nginx/admin-guide/installing-nginx/installing-nginx-open-source/#choosing-between-a-stable-or-a-mainline-version)。 ## Linux 二进制安装过程 NGINX 二进制安装过程利用特定 Linux 发行版原生的包管理器。因此,首次安装涉及将官方 NGINX 包存储库添加到系统的包管理器中。请按照 [these steps](https://nginx.org/en/linux_packages.html) 使用适合您 Linux 发行版的包管理器下载、验证和安装 NGINX 二进制文件。 ### 升级 未来升级到最新版本可以使用相同的包管理器进行管理,而无需手动下载和验证二进制文件。 ## FreeBSD 安装过程 有关在 FreeBSD 系统上安装 NGINX 的更多信息,请访问 https://nginx.org/en/docs/install.html ## Windows 可执行文件 主线版和稳定版的 Windows 可执行文件可以在主 [NGINX download page](https://nginx.org/en/download.html) 上找到。请注意,当前 NGINX for Windows 的实现处于概念验证阶段,应仅用于开发和测试目的。有关更多信息,请参阅 [nginx for Windows](https://nginx.org/en/docs/windows.html)。 ## 动态模块 NGINX 版本 1.9.11 增加了对 [Dynamic Modules](https://nginx.org/en/docs/ngx_core_module.html#load_module) 的支持。与静态模块不同,动态构建的模块可以在核心 NGINX 二进制文件构建完成后进行下载、安装和配置。[Official dynamic module binaries](https://nginx.org/en/linux_packages.html#dynmodules) 可从与前述步骤中描述的核心 NGINX 二进制文件相同的包存储库中获得。 # NGINX 入门 有关 NGINX 基础知识的简要介绍,请参阅我们的 [Beginner’s Guide](https://nginx.org/en/docs/beginners_guide.html)。 ## 安装 SSL 证书并启用 TLS 加密 有关如何为您的 NGINX 安装启用安全流量的快速指南,请参阅 [Configuring HTTPS servers](https://nginx.org/en/docs/http/configuring_https_servers.html)。 ## 负载均衡 有关将 NGINX 配置为负载均衡器的快速入门指南,请参阅 [Using nginx as HTTP load balancer](https://nginx.org/en/docs/http/load_balancing.html)。 ## 速率限制 请参阅我们的 [Rate Limiting with NGINX](https://blog.nginx.org/blog/rate-limiting-nginx) 博客文章,了解将 NGINX 配置为 API 网关的核心概念概述。 ## 内容缓存 请参阅 [A Guide to Caching with NGINX and NGINX Plus](https://blog.nginx.org/blog/nginx-caching-guide) 博客文章,了解如何将 NGINX 用作内容缓存(例如内容分发网络的边缘服务器)的概述。 # 从源代码构建 以下步骤可用于从本仓库中可用的源代码构建 NGINX。 ## 安装依赖项 大多数 Linux 发行版需要安装几个依赖项才能构建 NGINX。以下说明特定于 `apt` 包管理器,该管理器在大多数 Ubuntu/Debian 发行版及其衍生版本中广泛可用。 ### 安装编译器和 make 实用程序 使用以下命令安装 GNU C 编译器和 Make 实用程序。 ``` sudo apt install gcc make ``` ### 安装依赖库 ``` sudo apt install libpcre3-dev zlib1g-dev ``` ## 克隆 NGINX GitHub 仓库 使用您首选的方法将 NGINX 仓库克隆到您的开发目录中。有关更多帮助,请参阅 [Cloning a GitHub Repository](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository)。 ``` git clone https://github.com/nginx/nginx.git ``` ## 配置构建 在构建 NGINX 之前,您必须使用 [appropriate flags](https://nginx.org/en/docs/configure.html) 运行 `configure` 脚本。这将在您的 NGINX 源代码根目录中生成一个 Makefile,然后可以使用该文件编译具有 [options specified during configuration](https://nginx.org/en/docs/configure.html) 的 NGINX。 从 NGINX 源代码仓库的根目录: ``` auto/configure ``` ## 编译 `configure` 脚本成功执行后,将在 NGINX 源代码根目录中生成一个 `Makefile`。要将 NGINX 编译为二进制文件,请从该目录发出以下命令: ``` make ``` ## 二进制文件和安装位置 成功编译后,二进制文件将生成在 `/objs/nginx`。要安装此二进制文件,请从源代码根目录发出以下命令: ``` sudo make install ``` ## 运行和测试已安装的二进制文件 要运行已安装的二进制文件,请发出以下命令: ``` sudo /usr/local/nginx/sbin/nginx ``` 您可以使用 `curl` 测试 NGINX 操作。 ``` curl localhost ``` 其输出应以以下内容开头: ``` Welcome to nginx! ``` # 提问和报告问题 有关如何讨论代码库、提出故障排除问题和报告问题的信息,请参阅我们的 [Support](SUPPORT.md) 指南。 # 贡献代码 有关如何贡献代码的信息,请参阅 [Contributing](CONTRIBUTING.md) 指南。 # 更多帮助和资源 - 请参阅 [NGINX Community Blog](https://blog.nginx.org/),获取更多与 NGINX 及相关项目相关的提示、技巧和操作指南。 - 访问 [nginx.org](https://nginx.org/),这是获取所有与 NGINX 项目套件相关的文档、信息和软件的首选来源。 # 更新日志 请参阅我们的 [changelog](https://nginx.org/en/CHANGES) 以跟踪更新。 # 许可证 [2-clause BSD-like license](LICENSE) 更多文档请访问:https://nginx.org/en/docs
标签:API网关, BSD许可证, FreeBSD, HTTP服务器, IMAP, Nginx, POP3, SMTP, SSL/TLS, TCP代理, UDP代理, Unix, Web服务器, Windows支持, 内容缓存, 反向代理, 安全测试工具, 客户端加密, 客户端加密, 微服务架构, 数字足迹, 网络基础设施, 负载均衡, 运维工具, 进程监控, 邮件代理