Nginx 代理管理器(NPM)是一款开源免费应用程序,旨在简化 Nginx 代理、SSL、访问列表等的管理。 它有一个用户友好的仪表板,旨在帮助那些不是 Nginx CLI 专家的用户。 此外,它还通过 Let's Encrypt 提供免费 SSL、集成 Docker 并支持多用户。
在本完整指南中,我们旨在介绍 Nginx 代理管理器。我们将介绍 NPM 的基本知识、工作原理、功能等。
文章还比较了 NPM 和原生 NGINX 配置,详细介绍了在 Docker 上的安装过程,并对用户界面和初始设置进行了指导,最后还提供了常见问题部分以解答常见问题。

免责声明: 免责声明:本材料仅供参考。它并不构成对任何活动(包括非法活动)、产品或服务的认可。在使用我们的服务或依赖此处的任何信息时,您全权负责遵守适用的法律,包括知识产权法。对于因以任何方式使用我们的服务或此处包含的信息而造成的损害,我们不承担任何责任,除非法律明确要求。
目录
- 什么是 Nginx 代理管理器?
- NPM 与本地 NGINX 配置的比较
- 如何安装 Nginx 代理管理器?
- 如何使用Nginx代理管理器用户界面并进行配置?
- 重要配置和初始设置
- Nginx 代理管理器常见问题
- 最后的话
1.什么是 Nginx 代理管理器?
Nginx 代理管理器(NPM) 是一个功能强大的工具(MIT 许可下的开源项目),旨在简化 Nginx 的代理、SSL 和其他功能的管理。它的设计理念是为那些不熟悉 Nginx 复杂性的用户提供方便。
该工具允许用户在其网络(或计算机)内轻松公开网络服务。换句话说,它为互联网流量提供了一个安全高效的网关。同样,它与 Let's Encrypt 的集成也能让用户使用免费的 SSL 证书确保其服务的安全。
主要功能
- 漂亮的用户界面 该系统以 Tabler 为基础,界面直观、用户友好。
- 免费 SSL: 对 Let's Encrypt 的内置支持使用户无需支付额外费用即可确保其网络服务的安全。
- Docker 集成: Nginx 代理管理器以 Docker 映像的形式构建。这简化了部署,只需要一个数据库即可运行。
- 多用户: 它支持配置具有不同访问权限的其他用户。
Nginx 代理管理器推荐给哪些人使用?
Nginx Proxy Manager 在设计时充分考虑了安全性,是家庭网络或小型企业向更广泛的互联网提供服务的理想选择。此外,其平易近人的设计使各种技能水平的用户都能使用,为管理反向代理、SSL终止等提供了强大的解决方案。因此,Nginx 代理管理器对那些在家中托管网络应用程序或管理小型企业服务的用户非常有用。利用Nginx的全部功能比以往任何时候都更容易。
软件和项目详情:
- 文件: Nginx 代理管理器的文档相当详尽。它详细介绍了整个设置、配置和操作指南。查找 README 文件 官方详细文件。
- MIT 许可。 这是一种自由软件许可,允许个人和组织自由使用、复制、修改、合并、出版、分发、再许可和销售软件及其相关文档。
- 受欢迎程度 该项目拥有 2.2k 多个分叉和 19.2k 多颗星。GitHub 上的星级和分叉数量表明了社区对该项目的兴趣和参与度。
- 积极主动,有求必应: 查看 GitHub 上的问题(1.3k)和拉取请求(59)标签,这个项目似乎一直很活跃,维护者也确实很积极。
- 兼容性: 你可以在任何支持 Docker 的系统上安装 Nginx 代理管理器软件(因为它是作为预构建的 Docker 镜像发布的)。因此,它适用于各种环境。
什么不是 Nginx 代理管理器?
Nginx 代理管理器(NPM)与 NGINX 公司.,即 Nginx 网络服务器背后的公司。此外,它也不是网络服务器、内容分发网络(CDN)、网络应用程序防火墙(WAF)、独立的 SSL/TLS 证书颁发机构或完整的托管解决方案。最重要的是,NPM 不是代理服务器提供商;它不提供代理服务器。您需要 代理提供商 来使用和管理 NPM。
2.Nginx 代理管理器(NPM)与本地 NGINX 配置的比较
如上一节所述,NGINX(或 nginx)是一款多功能开源软件,可用作网络服务器。它还可以用作反向代理,以平衡服务器之间的流量。此外,它还可以配置为邮件代理和 HTTP 缓存。
您可以使用 NGINX 本身来配置和管理 NGINX 代理服务器,那为什么还需要 NGINX 代理管理器(NPM)呢?
请看下面的比较表。它总结了每种方案的优势和挑战。
Nginx 代理管理器(NPM)与原生 NGINX 的比较
| 方面 | Nginx 代理管理器(NPM) | 本地 NGINX |
| 用户界面 | 友好的图形用户界面,易于设置 | 命令行界面;学习曲线更陡峭 |
| 配置 | 简化反向代理和 SSL 配置 | 高度可定制的详细配置 |
| 学习机会 | 妨碍学习 NGINX 的细微差别 | 深入了解网络服务器配置 |
| 批量更改 | 图形用户界面在批量更改时效率不高,可能会出错 | 通过配置文件进行批量更改既高效又可靠 |
| 更新 | 更新频率较低;潜在安全风险 | 定期更新;更安全 |
| 灵活性 | 可能缺少高级配置选项 | 复杂设置的全面功能访问 |
| 服务故障处理 | 一个错误就可能导致整个服务失败 | 可隔离和管理单个服务故障 |
| 长寿 | 开发依赖于单一程序员;长期支持存在风险 | 得到广大社区的广泛支持 |
| SSL 管理 | 自动 SSL 设置和管理 | 手动设置;对 SSL 配置的更多控制 |
| 高架 | 图形用户界面增加了一层管理功能 | 与配置文件直接交互 |
| 可扩展性 | 可能不适合复杂、可扩展的环境 | 更适合可扩展的企业级配置 |
| 基础设施即代码 | 由于基于网络的管理,不太适合 | 基础设施即代码实践的理想选择 |
| 社区与支持 | 规模较小,取决于开发商的可用性 | 拥有大量支持和文档的大型社区 |
注意: 在 NPM 和本地 NGINX 之间做出选择,最终取决于您的具体需求、技能以及您所管理的服务器设置的复杂程度。不过,查看对比表可以帮助你了解该选择哪种方式。此外,在 SSL 管理方面,我们建议使用 SSL 和 TLS 证书 软件
3.如何安装 Nginx 代理管理器?
为便于演示,我们将通过 Docker Desktop(和 Docker Compose)在 Docker 容器上安装 Nginx 代理管理器。
要使用 Docker Compose 在 Windows 机器上安装 Nginx Proxy Manager,请按照以下说明逐步进行:
a.要求。
- Docker 和 Docker Compose: 确保 Windows 机器上已安装 Docker 和 Docker Compose。如果没有,可以从以下网址下载 Windows 版 Docker Desktop,其中包括 Docker Compose Docker 官方网站.
- Docker-Compose 用于定义和运行多容器 Docker 应用程序。通过 YAML 文件,您可以配置应用程序的服务,并根据配置创建和启动所有服务。
- 安装完成后,检查系统托盘中的 Docker 图标,确保 Docker 正在运行。

- 你还可以检查版本,确保它们都已安装。运行 "docker -version",确保 Docker 已安装并正常运行。运行 "docker-compose -version",检查是否安装了 Docker Compose。
- 港口:确保系统上的 80、81 和 443 端口可用,因为 Nginx 代理管理器需要这些端口才能工作。端口 80 用于 HTTP,端口 443 用于 HTTPS,端口 81 用于访问管理界面。
- 卷: 您需要映射卷以实现数据持久性。具体来说,你应该在容器内映射一个本地目录到 /data 和 /etc/letsencrypt,以确保在容器重启时保留配置和 SSL 证书。这在更新 Docker 映像时非常关键。
b.创建 Docker Compose 文件
- 打开你喜欢的文本编辑器,创建一个名为 docker-compose.yml 的文件。或者,如果该文件已经创建,只需打开它并在文件中添加以下几行。
- 将以下内容粘贴到文件中(确保间距和缩进正确,以符合 YAML 格式):
| 版本:'3.8 服务 应用程序 图像:jc21/nginx-proxy-manager:latest 重启:除非停止 端口: - 80:80′ # 公共 HTTP 端口 - 81:81′ # 管理网络端口 - 443:443' # 公共 HTTPS 端口 卷: - ./data:/data - ./letsencrypt:/etc/letsencrypt |
- 将文件保存在专用文件夹中。该文件夹还将保存数据和配置文件。

c.启动 Nginx 代理管理器
- 打开命令提示符或 PowerShell 窗口。使用 cd 命令导航到保存 docker-compose.yml 文件的目录。如果 Docker Compose 文件有问题,建议尝试使用在线 YAML 验证器,如 YAMLint 检查格式错误。
- 运行以下命令启动软件:
|
1 |
docker-compose 向上 -d |

- Docker 会开始下载必要的映像,并启动 Nginx 代理管理器容器。

- 现在,你可以回到 Docker Desktop,确保新的 Nginx Proxy Manager Docker 容器已启动并运行。

🔍 利用此快速 NGINX 列表,减少调试,更智能地部署 >> 下载小抄
d.访问 Nginx 代理管理器界面
- Nginx 代理管理器容器运行后,打开网页浏览器,进入 http://localhost:81。现在应该可以看到登录页面。

e.登录 Nginx 代理管理器
- 使用默认登录凭证访问管理界面:
- 电子邮件: [email protected]
- 密码: Changeme
- 登录后,系统会立即提示您更改默认密码。

- 成功更改登录名和凭据后,您就可以开始根据需要配置代理主机、SSL 证书和其他设置了。
f.维护安装
- 通过定期停止容器、调用最新映像并重启堆栈,保持 Nginx 代理管理器的最新状态:
|
1 2 3 |
docker-compose 下来 docker-compose 拉绳 docker-compose 向上 -d |
按照以上步骤,您就使用 Docker Compose 在 Windows 机器上成功安装了 Nginx Proxy Manager。
苦于代理性能缓慢、不可靠?RapidSeedbox 就是解决方案。
使用我们稳健可靠的代理服务器,加强对 Nginx 代理服务器的管理。
向卓越问好!
----
4.如何使用 Nginx 代理管理器用户界面并进行配置?
Nginx 代理管理器有一个用户友好的网络界面,可以将 Nginx 作为代理服务器进行配置和管理。
让我们快速浏览一下 Nginx 代理管理器用户界面的各个方面。
a.仪表板
布局清晰,可显示代理主机、重定向主机、流和 404 主机的摘要。仪表盘的设计让你对服务器的状态一目了然,并能快速导航到不同的配置区域。

b.主持人:
本部分列出了所有主机,包括代理主机、重定向主机、流主机和 404 主机。其中最重要的是代理主机,它会显示来源和目的地、是否配置了 SSL 以及它们的在线状态。你也可以通过点击 "添加代理主机 "按钮,然后输入域名、选择方案、设置转发主机名/IP 和端口来添加新的代理主机。下一节将详细介绍。

c.访问列表
本部分允许您管理访问控制。它通过限制哪些用户可以查看或管理不同的主机来提供额外的安全性。您还可以使用 "添加访问列表 "创建新的访问列表。

d.SSL 证书
该部分显示所有可用或正在使用的 SSL 证书,包括提供商和过期日期等详细信息。此外,还有一个 "添加 SSL 证书 "按钮,用于使用 SSL 证书保护新主机。

e.用户。
用户 "部分为用户管理提供了一种直接的方式。它提供了用户权限概览以及添加新用户或修改现有用户的功能。

f.审计日志
用户界面的这一部分显示在代理管理器中执行操作的历史记录。审计日志包括事件、配置更新和 SSL 证书更新。

g.设置
设置可自定义默认行为,例如对未知主机访问的响应,以及自定义错误页面选项。下面的截图显示了默认网站(当 Nginx 遇到未知主机时显示的内容)。

5.重要配置和初始设置。
使用 Nginx 代理管理器用户界面,你可以轻松创建和管理反向代理、应用 SSL 证书并微调服务器设置,而无需对 Nginx 或命令行工具有太多了解。
我们建议您从以下基本配置开始。
a.设置代理主机
- 转到 "代理主机 "选项卡,点击 "添加代理主机"。
- 输入域名,选择 HTTP 或 HTTPS,并提供代理服务的内部 IP 地址和端口。
- 您还可以在此更改位置、分配 SSL 等参数,并更改自定义 Nginx 配置。

b.配置 SSL
导航至 "SSL 证书 "选项卡。点击 "添加 SSL 证书"。选择通过 Let's Encrypt 申请新的 SSL,或通过提供证书和私钥添加自己的证书。
- 在配置面板内 "添加 "Let's Encrypt 证书",添加域名(如其所述;必须已在 "主机 "中配置)。添加电子邮件,同意 Let's Encrypt ToS,并通过 "测试服务器可达性 "对证书进行测试。
- 添加 SSL 证书: 为代理主机指定 SSL:转到 "代理主机 "选项卡。单击 "添加代理主机 "或编辑现有主机。填写域名和其他必要信息。在代理主机的 "SSL "选项卡中,选择已添加的 SSL 证书。选择 SSL 选项,如 HTTP/2 支持、HSTS 和 HTTP 重定向到 HTTPS。

c.配置防火墙规则。
虽然 Nginx 代理管理器不直接处理防火墙配置,但它可以设置与 WAF 类似的规则。
- 访问列表: 在 "访问列表 "选项卡中,创建一个新的访问列表。根据 IP 地址或范围定义允许或拒绝访问的规则。您还可以启用授权,要求使用用户名和密码访问某些服务。

- 代理主机高级配置: 在 "代理主机 "详细信息中,切换到 "高级 "选项卡。输入自定义 Nginx 指令,以控制访问、限制请求率或拒绝有问题的用户代理和 IP。
- 您可以添加拒绝或允许指令等规则,以阻止或允许特定的 IP 地址或范围。

- 自定义地点: 进入 "新代理主机 "设置(或编辑现有代理主机)。在这里,您可以定义特定的 URL 路径(位置),并将其转发到不同的主机名和端口。
- 这样,您就可以对内部服务的传入流量路由进行更精细的控制。

6.Nginx 代理管理器常见问题。
a.NGINX 和 Nginx 代理管理器之间有什么关系?
NGINX 是一款开源网络服务器。另一方面,NGINX Proxy Manager 或 NPM 是一个开源工具,用于简化 NGINX 管理。前者是一个简化 Nginx 配置和管理的管理层。
b.Nginx 代理管理器有哪些替代方案?
Nginx 代理管理器的替代品包括 Traefik, 卡迪, Apache HTTP 服务器, HAPr氧, WinGate,和 OpenResty.它们都值得探索,以确定最适合您特定要求和基础设施的方案。请注意,这些替代方案在功能、性能和配置复杂性方面各不相同。
c.如何使用 Nginx 代理管理器设置 SSL 终止?
可以在Nginx代理管理器中设置SSL终止。首先创建一个新的代理主机,然后在 SSL 标签中启用 SSL,最后选择向 LetsEncrypt 申请一个新的 SSL 证书。也可以导入现有证书。
d.Nginx 代理管理器可以用于负载平衡吗?
是的,它可以配置为负载平衡。您可以为一个代理主机设置多个后端服务器,并在 "高级 "设置中调整负载平衡方法。进一步了解 反向代理和负载平衡器
e.使用 Docker 和 Docker Compose 配置 Nginx 代理管理器的步骤是什么?
有关使用 Docker Compose 配置 Nginx 代理管理器的完整指南,请参阅指南 (第三节).以下是简要步骤:
- 安装 Docker 和 Docker Compose。
- 创建包含 Nginx 代理管理器服务定义的 docker-compose.yml 文件。
- 运行 docker-compose up -d 启动容器。
- 访问 http://:81 的网络用户界面,完成设置。
f.能否使用 Nginx 代理管理器管理反向代理?
您可以使用 NPM 管理反向代理服务器。反向代理服务器会将客户端请求路由到相应的后端服务器。这样,您就可以在单个 IP 地址后托管多个应用程序或服务(并增加一定程度的安全性)。
g.如何使用 Nginx 代理管理器实施访问控制和速率限制?
可以在代理主机的 "高级 "选项卡下配置访问控制和速率限制。您可以添加自定义 Nginx 指令,允许或拒绝特定 IP 地址,并限制请求速率,防止滥用。
h.如何在 Nginx 代理管理器中管理 SSL 证书,包括使用 LetsEncrypt 进行自动更新?
SSL 证书在 "SSL 证书 "选项卡中进行管理,您可以向 LetsEncrypt 申请新的 SSL,过期后将自动更新。如果需要,也可以上传自定义 SSL 证书。
7.最后的话
在本文中,我们探讨了 Nginx 代理管理器(NPM)的基础知识。该工具功能强大,范围广泛,我们只是触及了冰山一角。如果你想了解更多,我们建议你查阅官方文档 (README 文件).
在该指南中,我们介绍了基本知识、完整说明以及与原生 Nginx 代理管理工具的比较。从安装到配置,再到实际用例,本指南涵盖了所有内容。它提供了利用 NPM 进行高效网络服务管理的宝贵见解。
希望本指南对您有所帮助。如果有用或没用,请在下方留下您的意见和建议。我们渴望听到您的意见!
你好,迭戈、
这篇文章信息量很大,但我还有一个问题。
在 NPM 后面使用 Nginx 网络服务器时(全部在单个虚拟机中),这与问题无关。
如果我想为网络应用程序应用安全标头,需要在哪里输入?
1. 在 NPM 上还是 2. 在 NGINX 网络服务器上?它应该在两个系统中都能工作,但从安全角度来看,在哪里工作最好?
问候尤尔根
*** 翻译 http://www.DeepL.com/Translator (免费版)***
你好,Jurgen,最好在 NPM 上应用安全标头,这主要是为了集中安全、早期拦截不良请求和防止标头修改。不过,也有一些注意事项。例如,如果你的 NPM 只是作为一个反向代理,或者如果你需要依赖于应用程序逻辑的动态头。否则,NPM header config(NPM头配置)将是最佳选择。