推荐直接使用 Nginx Proxy Manager(NPM),它专为简化反向代理和证书管理设计,无需手动写配置、不用自己申请/续期证书,图形界面操作,适合绝大多数场景;需确保服务器已安装 Docker(1.13+)和 Docker Compose(v2 或 v1.29+)。

推荐直接使用 Nginx Proxy Manager(NPM),它专为简化反向代理和证书管理设计,无需手动写配置、不用自己申请/续期证书,图形界面操作,适合绝大多数场景。
准备基础环境
确保服务器已安装:
- Docker(1.13+)
- Docker Compose(v2 或 v1.29+)
- blog.example.com → 203.0.113.45)
若未安装,可运行以下命令快速部署(以 Ubuntu/CentOS 通用脚本为例):
curl -fsSL https://get.docker.com | bash && systemctl enable docker && systemctl start dockersudo apt install docker-compose-plugin # Ubuntu 22.04+
一键启动 Nginx Proxy Manager
新建项目目录,创建 docker-compose.yml:
vim docker-compose.yml
填入以下内容(仅需默认 SQLite 存储,无需数据库):
version: '3.8'services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80'
- '443:443'
- '81:81'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
保存后执行:
等待约 30 秒,访问 http://你的服务器IP:81,用默认账号登录:
Email: admin@example.com Password: changeme
添加反向代理并自动启用 HTTPS
登录管理后台后,按顺序操作:
- 点击左侧 Proxy Hosts → Add Proxy Host
-
Domain Names:填写你已解析的域名(如
blog.example.com,支持多个,空格或换行分隔) -
Scheme:选
http;Forward Hostname/IP:填后端服务所在地址(如192.168.1.100或容器名halo) -
Forward Port:填后端服务端口(如 Halo 是
8090,Memos 是5230) - 切换到 SSL 标签页 → 勾选 Request a new SSL Certificate
- 勾选 Force SSL 和 HTTP/2 Support,同意 Let’s Encrypt 条款
- 点击 Save,系统将自动验证域名、申请证书、配置 HTTPS 并每 60 天自动续期
几秒后状态显示 SSL Active,即可通过 https://blog.example.com 访问,全程无手动干预。
进阶提示
如果需要泛域名证书(如 *.example.com),NPM 支持 DNS API 方式验证(需配合 Cloudflare、阿里云等平台的 API Key);
若后端服务本身监听 localhost 或 Docker 内网,建议将 NPM 与后端服务置于同一自定义网络(docker network create npm-net),提升通信稳定性与安全性。











