Nginx Proxy Manager 简介
Nginx Proxy Manager 是一个基于 Nginx 的、带 Web 管理界面的反向代理服务器,它让配置反向代理和申请 SSL 证书变得简单直观。无需手动编辑 Nginx 配置文件,通过图形化界面即可完成各种配置。
主要特点
- 可视化界面:通过 Web 界面管理所有代理配置
- SSL 证书:自动申请和续期 Let's Encrypt 证书
- 反向代理:轻松配置多个域名的反向代理
- 访问控制:支持基本的 HTTP 认证
- 高性能:基于 Nginx 的高性能反向代理
- 安全:自动配置 HTTPS 和 HTTP/2
准备工作
在开始部署之前,请确保您已经具备以下条件:
- 已安装 Docker 和 Docker Compose(参考本站 Linux Docker 安装教程)
- 一个可用的域名(用于配置 HTTPS)
- 服务器配置建议:
- 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
使用以下默认凭据登录:
- 邮箱: admin@example.com
- 密码: changeme
重要:首次登录后请立即更改默认密码。
2. 修改管理员邮箱和密码
- 登录后点击右上角用户图标
- 选择 "Account"
- 更新邮箱和密码
- 点击 "Save" 保存更改
配置反向代理
1. 添加代理主机
点击 "Hosts" > "Proxy Hosts"
点击 "Add Proxy Host"
配置以下信息:
- Domain Names: 你的域名 (例如: app.yourdomain.com)
- Scheme: http
- Forward Hostname/IP: 目标服务器IP
- Forward Port: 目标服务端口
点击 "Save" 保存
2. 配置 SSL 证书
- 在代理主机配置页面,切换到 "SSL" 标签
- 选择 "Request a new SSL Certificate"
- 勾选 "I agree to the Let's Encrypt Terms of Service"
- 输入你的邮箱
- 点击 "Save" 申请证书
3. 配置 HTTP 重定向到 HTTPS
- 在代理主机配置页面,切换到 "Custom Locations" 标签
- 添加一个新的自定义位置:
- Location: /
- Scheme: https
- Forward Hostname/IP: 目标服务器IP
- Forward Port: 目标服务端口
- 点击 "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.yml 的 ports 映射中的 81 端口并重启服务 |
如何配置邮件通知? | 在管理界面 "System → Settings → Email" 中配置 SMTP 信息 |
如何启用 HTTP/2? | 在代理主机的 SSL 标签页中勾选 HTTP/2 选项 |
完成
恭喜!您已成功部署并配置了 Nginx Proxy Manager。现在您可以通过它来管理多个网站的反向代理和 SSL 证书了。
如果在使用过程中遇到任何问题,欢迎在评论区留言,我会尽快为您解答。