Skip to content

Nginx Proxy Manager 简介

Nginx Proxy Manager 是一个基于 Nginx 的、带 Web 管理界面的反向代理服务器,它让配置反向代理和申请 SSL 证书变得简单直观。无需手动编辑 Nginx 配置文件,通过图形化界面即可完成各种配置。

官方演示站:https://nginxproxymanager.com

主要特点

  • 可视化界面:通过 Web 界面管理所有代理配置
  • SSL 证书:自动申请和续期 Let's Encrypt 证书
  • 反向代理:轻松配置多个域名的反向代理
  • 访问控制:支持基本的 HTTP 认证
  • 高性能:基于 Nginx 的高性能反向代理
  • 安全:自动配置 HTTPS 和 HTTP/2

准备工作

在开始部署之前,请确保您已经具备以下条件:

  1. 已安装 Docker 和 Docker Compose(参考本站 Linux Docker 安装教程
  2. 一个可用的域名(用于配置 HTTPS)
  3. 服务器配置建议:
    • CPU: 1核以上
    • 内存: 512MB 以上
    • 存储: 5GB 可用空间

使用 Docker Compose 部署 Nginx Proxy Manager

1. 创建项目目录

首先,创建一个新的目录来存放 Nginx Proxy Manager 的配置和数据:

bash
mkdir -p ~/nginx-proxy-manager/{data,letsencrypt}
cd ~/nginx-proxy-manager

2. 创建 docker-compose.yml 文件

创建并编辑 docker-compose.yml 文件:

bash
cat > docker-compose.yml << 'EOF'
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    container_name: nginx-proxy-manager
    restart: always
    ports:
      - '80:80'              # HTTP 端口
      - '81:81'              # 管理界面端口
      - '443:443'            # HTTPS 端口
    volumes:
      - ./data:/data         # 配置文件
      - ./letsencrypt:/etc/letsencrypt  # SSL证书
    environment:
      DISABLE_IPV6: "true"
EOF

参数说明

  • ports:
    • 80:80:HTTP 流量端口,必须开放
    • 81:81:管理界面端口,冒号前可修改宿主机端口
    • 443:443:HTTPS 流量端口,必须开放
  • volumes:
    • ./data:必须挂载,存储 Nginx 配置和数据库
    • ./letsencrypt:必须挂载,存储 SSL 证书
  • DISABLE_IPV6:禁用 IPv6,如需启用可移除

3. 启动 Nginx Proxy Manager

运行以下命令启动服务:

bash
docker compose up -d

4. 验证部署

等待几秒钟后,检查容器状态:

bash
docker ps | grep nginx-proxy-manager

如果看到容器状态为 Up,说明服务已成功启动。

基本配置

1. 访问管理界面

在浏览器中访问:

bash
http://你的服务器IP:81

使用以下默认凭据登录:

重要:首次登录后请立即更改默认密码。

2. 修改管理员邮箱和密码

  1. 登录后点击右上角用户图标
  2. 选择 "Account"
  3. 更新邮箱和密码
  4. 点击 "Save" 保存更改

配置反向代理

1. 添加代理主机

  1. 点击 "Hosts" > "Proxy Hosts"

    image-20250613185851657

  2. 点击 "Add Proxy Host"

    image-20250613185823211

  3. 配置以下信息:

    • Domain Names: 你的域名 (例如: app.yourdomain.com)
    • Scheme: http
    • Forward Hostname/IP: 目标服务器IP
    • Forward Port: 目标服务端口
  4. 点击 "Save" 保存

    image-20250613190046783

2. 配置 SSL 证书

  1. 在代理主机配置页面,切换到 "SSL" 标签
  2. 选择 "Request a new SSL Certificate"

image-2025061319004783

  1. 勾选 "I agree to the Let's Encrypt Terms of Service"
  2. 输入你的邮箱

image-20250613190046783

  1. 点击 "Save" 申请证书

3. 配置 HTTP 重定向到 HTTPS

  1. 在代理主机配置页面,切换到 "Custom Locations" 标签
  2. 添加一个新的自定义位置:
    • Location: /
    • Scheme: https
    • Forward Hostname/IP: 目标服务器IP
    • Forward Port: 目标服务端口
  3. 点击 "Save" 保存

数据备份与恢复

1. 备份数据

Nginx Proxy Manager 的数据存储在 ./data 目录下,可以通过以下命令进行备份:

bash
# 创建备份文件
tar -czvf nginx-proxy-manager-backup-$(date +%Y%m%d).tar.gz -C ~/nginx-proxy-manager/data .

2. 恢复数据

bash
# 停止服务
cd ~/nginx-proxy-manager
docker compose down

# 恢复备份(请将 YYYYMMDD 替换为实际备份日期)
tar -xzvf nginx-proxy-manager-backup-YYYYMMDD.tar.gz -C ~/nginx-proxy-manager/data

# 重新启动服务
docker compose up -d

常见问题(FAQ)

问题解决方案
如何更新 Nginx Proxy Manager?在项目目录执行 docker compose pull && docker compose up -d --force-recreate
如何查看日志?docker logs nginx-proxy-manager
如何修改管理端口?修改 docker-compose.ymlports 映射中的 81 端口并重启服务
如何配置邮件通知?在管理界面 "System → Settings → Email" 中配置 SMTP 信息
如何启用 HTTP/2?在代理主机的 SSL 标签页中勾选 HTTP/2 选项

完成

恭喜!您已成功部署并配置了 Nginx Proxy Manager。现在您可以通过它来管理多个网站的反向代理和 SSL 证书了。

如果在使用过程中遇到任何问题,欢迎在评论区留言,我会尽快为您解答。