Nginx Proxy Manager Docker 容器代理介绍与使用

type
Post
status
Published
date
May 17, 2023
slug
NPM
summary
tags
icon

介绍

内置 Let's Encrypt 加密证书,免费证书只有 3 个月,但到期会自动续上

安装

1. 创建 docker-compose.yml 文件

内容如下:
最后 4 行是重点

2. 创建名为 npm 的 docker network

3. 启动 NPM

4. 打开防火墙端口 80, 81, 443

以腾讯云服务器为例
notion image
notion image

5. 浏览器地址栏输入 <IP 地址>:81 即可进入 Nginx Proxy Manager 的 web 管理界面

默认账户密码为:
notion image
登录后系统会提示修改邮箱和密码,修改即可

使用

假设我们拥有 example.com 这个域名,我们想利用 docker 创建一个名为 gotify 的服务并通过域名 gotify.example.com ,我们需要做以下几件事
  1. example.com 域名管理中,设置一条 A 记录,将 gotify.example.com 定向到我们运行 NPM容器的服务器的 IP
  1. 创建一个 gotify 服务并加入 npm 网络
  1. 在 NPM 的 web 管理界面配置 gotify.example.com 解析到容器

1. DNS 设置域名解析到 IP

阿里云 DNS 为例
notion image
notion image

2. 创建一个 gotify 服务并加入 npm 网络

内容如下:
13, 14 行设置了 gotify 服务的用户名和密码,可以自行设置
最后四行令 gotify 加入 npm 网络
启动 gotify 容器

3. 配置 gotify.example.com 解析到容器

进入 NPM 的 web 管理界面
notion image
notion image
notion image
💡
上图 6 和 7 处的说明: 6 服务容器名:在 gotify 的 docker-compose.yml 文件第 6 行 container_name: gotify-server 7 服务端口:在 gotify 的 docker-compose.yml 文件第 10 行 # - 82:80 ,冒号前的 82 是指通过转发到的主机端口, 冒号后的 80 才是 gotify 这个容器本来的端口。我们使用 NPM 进行域名直接定向到服务容器,无需转发到主机端口,故注释第 9, 10 行
notion image
notion image
点击保存后需要一段时间生成 ssl 证书,等待完成即可
 
以后所有的 docker 容器代理都通过这三步完成
 

问题

每次新请求一个 SSL 证书时,都会报 Internal Error,重装过 docker 也没有用
notion image
尝试使用 Caddy

© insv 2021 - 2023