Docker 部署 Nginx Proxy Manager 中文版 🔐

Nginx Proxy Manager


📋 目录导航


🎯 项目简介


🛠️ 核心特性

特性类别 功能描述 优势
🌐 可视化管理 Web 界面管理反向代理 无需编辑配置文件,直观易用
🔒 SSL 证书 自动申请和续期 Let’s Encrypt 证书 一键配置 HTTPS,保障安全
👥 访问控制 基于 IP 的访问控制列表 灵活管理访问权限
🔄 负载均衡 多后端服务器负载均衡 提高服务可用性和性能
📊 流量监控 实时查看代理状态和流量 便于监控和故障排查
🌍 多域名支持 同时管理多个域名和子域名 统一管理所有Web服务
⚡ 高性能 基于 Nginx 的高性能代理 低延迟,高并发处理能力
🔧 自定义配置 支持自定义 Nginx 配置 满足特殊业务需求
📱 响应式界面 支持移动端管理的响应式界面 随时随地管理服务

🐳 一、Docker 部署 NPM

1. 创建部署目录和配置文件 📁

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# 创建部署目录
mkdir -p /mnt/mydisk/home/npm && cd $_ && \
cat > docker-compose.yml <<'EOF'
services:
app:
container_name: npm
image: chishin/nginx-proxy-manager-zh:latest
restart: unless-stopped
ports:
- "1180:80" # HTTP 流量端口
- "4443:443" # HTTPS 流量端口
- "81:81" # 管理界面端口
environment:
DB_MYSQL_HOST: db
DB_MYSQL_PORT: 3306
DB_MYSQL_USER: npm
DB_MYSQL_PASSWORD: npm
DB_MYSQL_NAME: npm
volumes:
- ./config/data:/data
- ./config/letsencrypt:/etc/letsencrypt
depends_on:
- db
networks:
- npm-network

db:
container_name: npm-db
image: jc21/mariadb-aria:latest
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: npm
MYSQL_DATABASE: npm
MYSQL_USER: npm
MYSQL_PASSWORD: npm
MARIADB_AUTO_UPGRADE: "1"
volumes:
- ./config/mysql:/var/lib/mysql
networks:
- npm-network

networks:
npm-network:
driver: bridge

# 默认登录信息(首次登录后请修改)
# 邮箱: admin@example.com
# 密码: changeme
EOF

2. 启动 NPM 服务 🚀

1
docker-compose up -d

🚀 二、初始访问和配置

1. 首次访问设置 💻

  1. 打开浏览器访问 http://10.10.10.245:81
  2. 使用默认凭据登录:
    • 邮箱:admin@example.com
    • 密码:changeme
  3. 重要:首次登录后请立即修改密码和邮箱

2. 基本配置步骤 🎯

  1. 修改管理员信息

    • 登录后转到”用户”页面
    • 修改邮箱和密码为安全的值
  2. 配置SSL证书

    • 转到”SSL证书”页面
    • 申请或上传SSL证书
  3. 设置代理主机

    • 转到”代理主机”页面
    • 添加需要代理的服务

🌐 三、Nginx 反向代理配置

1. 域名解析设置 🔧

阿里云泛域名解析

  1. 登录阿里云控制台
  2. 进入域名解析页面
  3. 添加泛域名解析记录:
    • 记录类型:A
    • 主机记录:*.yourdomain.com
    • 记录值:您的公网IP地址

2. 端口转发配置 📡

爱快端口转发

  1. 登录爱快路由器管理界面
  2. 进入”网络设置” > “端口映射”
  3. 添加端口转发规则:
    • 内网IP:NPM所在服务器的IP(10.10.10.245)
    • 内网端口:4443
    • 外网端口:4443
    • 协议:TCP

3. NPM 代理配置 ⚙️

NPM代理配置

  1. 登录NPM管理界面
  2. 转到”代理主机”页面
  3. 点击”添加代理主机”
  4. 配置代理规则:
    • 域名:要代理的域名(如service.yourdomain.com)
    • 方案:http或https
    • 转发IP:内网服务的IP地址
    • 端口:内网服务的端口
    • SSL证书:选择或申请SSL证书

🔧 四、容器维护命令

1. Docker Compose 命令 🐳

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# 进入项目目录
cd /mnt/mydisk/home/npm

# 停止并删除容器
docker-compose down

# 拉取最新镜像
docker-compose pull

# 启动容器
docker-compose up -d

# 查看服务状态
docker-compose ps

# 查看服务日志
docker-compose logs

# 跟踪服务日志
docker-compose logs -f

# 查看指定服务日志
docker-compose logs app

# 完整升级流程
docker-compose down && \
docker-compose pull && \
docker-compose up -d && \
docker image prune -f

2. Docker 容器命令 📦

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# 查看所有容器名称
docker ps -a --format "{{.Names}}"

# 查看运行中容器
docker ps

# 停止/启动/重启容器
docker stop npm # 停止容器
docker start npm # 启动容器
docker restart npm # 重启容器

# 删除容器
docker rm npm # 删除已停止容器
docker rm -f npm # 强制删除运行中容器

# 进入容器Shell
docker exec -it npm sh # 使用sh进入容器
docker exec -it npm bash # 使用bash进入容器

# 查看容器详情和资源使用
docker inspect npm # 查看详细配置
docker stats npm # 实时资源监控

## 容器日志管理
docker logs npm # 查看日志
docker logs -f npm # 实时跟踪日志
docker logs --tail 100 npm # 查看最后100行
docker logs -t npm # 带时间戳的日志

3. Docker 镜像管理 📀

1
2
3
4
docker images                  # 列出所有镜像
docker rmi <image_name:tag> # 删除指定镜像
docker image prune -f # 清理悬空镜像
docker image prune -a -f # 清理所有未使用镜像

🌟 启航代理,管理无限

通过本文档,你已经成功使用 Docker 部署了 Nginx Proxy Manager 中文版,并完成了反向代理的全面配置。现在,你可以:

🌐 统一入口 通过一个域名管理所有Web服务,告别繁琐的端口记忆
🔒 安全加密 一键配置SSL证书,为所有服务提供HTTPS安全加密
🎯 可视管理 通过友好的中文界面轻松管理代理规则和访问控制
高效转发 享受高性能的反向代理服务,提升访问体验

网络代理,是现代Web服务的基础架构。愿 Nginx Proxy Manager 成为你可靠的网络管家,为你简化每一个服务配置,守护每一次安全连接。

从现在开始,统一管理,安全访问——构建你专属的Web服务网关吧!🚪


📌 持续维护:建议定期检查 NPM 官方更新,保持系统最新
🔧 最佳实践:定期备份配置文件和数据库,确保服务稳定运行
🐛 交流支持:使用中遇到问题可访问 GitHub Issues 获取帮助

祝你配置顺利,管理无忧!🎉