Nginx Proxy Manager 使用说明 – 全网最详细的教程


Nginx Proxy Manager 深度指南:轻松驾驭反向代理与 SSL 证书管理

引言

在现代网络应用部署中,反向代理和 SSL 证书管理是不可或缺的环节。Nginx Proxy Manager (NPM) 作为一个图形化的 Nginx 配置工具,极大地简化了这些任务。它提供了一个直观的 Web 界面,让用户无需深入了解 Nginx 配置细节,即可轻松实现反向代理、SSL 证书申请与自动续期、访问控制等功能。

核心概念与优势

Nginx Proxy Manager 构建于 Nginx 之上,但它并非简单地对 Nginx 进行封装。其核心优势在于:

  • 可视化管理: 告别繁琐的配置文件编辑,通过图形界面即可完成所有操作。
  • 自动化 SSL: 集成 Let's Encrypt,自动申请、部署和续期 SSL 证书,实现全站 HTTPS。
  • 简化反向代理: 轻松配置多个反向代理规则,将不同域名或路径映射到不同的后端服务。
  • 访问控制: 支持基本的 HTTP 认证,提供额外的安全保障。
  • 易于部署: 采用 Docker 容器化部署,方便快捷,跨平台兼容性好。

它巧妙地将 Nginx 的强大功能与易用性相结合,大幅降低了使用门槛,使非专业人员也能轻松管理复杂的网络配置。

安装与部署

Nginx Proxy Manager 推荐使用 Docker 进行部署。确保系统已安装 Docker 和 Docker Compose。

  1. 创建 docker-compose.yml 文件:

yaml
version: '3'
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80'
- '81:81'
- '443:443'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt

  1. 启动容器:

bash
docker-compose up -d

启动后,可以通过浏览器访问 http://<服务器IP>:81 进入 NPM 的管理界面。默认登录凭据为:

强烈建议,初次登录后立即修改默认密码。

反向代理配置

  1. 添加 Proxy Host:

    在 NPM 管理界面中,点击 "Proxy Hosts",然后点击 "Add Proxy Host"。

  2. 填写基本信息:

    • Domain Names: 填写需要代理的域名(如 example.comwww.example.com)。
    • Scheme: 选择 httphttps(如果后端服务支持 HTTPS)。
    • Forward Hostname / IP: 填写后端服务的 IP 地址或域名。
    • Forward Port: 填写后端服务的端口号。
  3. (可选)启用高级功能:

    • Caching: 启用缓存可以提高访问速度。
    • WebSockets Support: 如果后端服务使用 WebSockets,则需要启用此选项。
    • Block Common Exploits: 阻止常见的网络攻击
  4. SSL 证书配置:

  5. 切换到 "SSL" 选项卡。
  6. 在“SSL Certificate"选择 "Request a new SSL Certificate with Let's Encrypt"。
  7. 勾选“Force SSL”,强制 HTTPS 连接。

  8. 保存配置。

NPM 将自动申请 SSL 证书并配置 Nginx。稍等片刻,即可通过配置的域名访问服务。

其他配置

  • 访问列表(Access Lists): 可以创建访问控制规则,限制特定 IP 地址或网络的访问。
  • 用户管理(Users): 可以添加多个管理员账户,方便团队协作。
  • 重定向主机(Redirection Hosts): 可以将一个网址的流量重定向到另一个网址.
  • 404主机(404 Hosts): 可以自定义404错误的页面.
  • 高级设置(Advanced): 可以使用自定义 Nginx 配置片段,实现更复杂的功能。

与传统 Nginx 配置对比

过去,要实现相同的功能,需要手动编辑 Nginx 配置文件,例如:

```nginx
server {
listen 80;
server_name example.com;

location / {
    proxy_pass http://192.168.1.100:8080;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
}

}
```

这要求用户:

  • 熟悉 Nginx 配置语法。
  • 手动管理 SSL 证书的申请和续期。
  • 自行配置访问控制规则。

而 NPM 提供了图形化界面,用户无需编写任何代码,即可完成所有配置,并且自动处理 SSL 证书相关事宜。这种方式极大地简化了操作,减少了出错的可能性。

替代方案

除了手动配置 Nginx,还有一些其他的替代方案:

  • Caddy: 一个新兴的 Web 服务器,以其简洁的配置和自动 HTTPS 功能著称。
  • Traefik: 一个现代化的反向代理和负载均衡器,专为微服务架构设计。

与 Caddy 相比,Nginx Proxy Manager 的优势在于它基于 Nginx,拥有更广泛的社区支持和更成熟的生态系统。而与 Traefik 相比,NPM 的配置更简单直观,适合对网络配置不太熟悉的用户。

应用场景

  • 个人网站/博客: 快速搭建 HTTPS 网站,无需操心证书问题。
  • 小型企业应用: 为多个内部应用提供统一的访问入口,并实现安全访问。
  • 开发测试环境: 快速搭建反向代理,方便本地开发和调试。
  • 家庭网络服务: 将家庭服务器上的多个服务暴露到公网,并实现安全访问。

回顾与展望

Nginx Proxy Manager 的出现,让反向代理和 SSL 证书管理变得前所未有的简单。它将复杂的技术细节隐藏在友好的界面之后,让更多人能够轻松享受到安全、高效的网络服务。

当然, 它并非完美, 还有一些可以改进的地方,比如:

  • 更细粒度的访问控制: 目前的访问控制功能相对简单,未来可以考虑支持更复杂的规则。
  • 更多的监控和日志功能: 增加对代理服务的监控和日志分析功能,方便用户排查问题。
  • 插件系统: 支持插件扩展,以满足更多个性化需求。

即使如此,NPM 仍不失为一个优秀的工具,值得推荐给所有需要管理网络服务的用户。

THE END