在我们使用Nginx进行反代的时候,传统的配置文件会觉得有些太麻烦。而这篇文章我介绍的工具——Nginx Proxy Manager,就是一种解决这个痛点的图形化工具。在这篇文章中,我主要来和大家一起安装并使用Nginx Proxy Manager

准备材料

  • 一台VPS

部署步骤

  1. SSH进入至VPS
  2. 安装Docker
1
2
wget -qO- get.docker.com | bash
docker -v

如出现docker版本即为安装成功

  1. 安装Docker-compose
1
2
3
curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose --version

如出现docker-compose版本即为安装成功

  1. 修改 Docker 配置(可选)

以下配置会增加一段自定义内网 IPv6 地址,开启容器的 IPv6 功能,以及限制日志文件大小,防止 Docker 日志塞满硬盘

1
2
3
4
5
6
7
8
9
10
11
12
13
cat > /etc/docker/daemon.json <<EOF
{
"log-driver": "json-file",
"log-opts": {
"max-size": "20m",
"max-file": "3"
},
"ipv6": true,
"fixed-cidr-v6": "fd00:dead:beef:c0::/80",
"experimental":true,
"ip6tables":true
}
EOF

并重启Docker服务

1
systemctl restart docker
  1. 使用以下命令创建npm文件夹,并创建docker-compose.yml文件
1
2
3
4
cd /opt
mkdir npm
cd npm
touch docker-compose.yml
  1. /opt/npmdocker-compose.yml文件内,复制粘贴,并修改以下内容
1
2
3
4
5
6
7
8
9
10
11
12
13
version: '3'
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
# 冒号左边可改成自己服务器未被占用的端口
- '80:80'
- '443:443'
- '81:81' # 面板端口
volumes:
- ./data:/data # 冒号左边可改路径,现在是表示把数据存放在在当前文件夹下的 data 文件夹中
- ./letsencrypt:/etc/letsencrypt # 冒号左边可改路径,现在是表示把数据存放在在当前文件夹下的 letsencrypt 文件夹中

请确保当前的端口没有被占用

  1. /opt/npm目录下,运行以下命令
1
docker-compose up -d 
  1. 可以通过 IP:端口 ( IPv6为:[IP]:端口 )进入面板,默认用户名和密码如下:
1
2
Email:    [email protected]
Password: changeme
  1. 可以通过以下命令升级Nginx Proxy Manager
1
2
3
4
5
6
cd /opt/npm
docker-compose down
cp -r /opt/npm /opt/npm.archive # 备份
docker-compose pull
docker-compose up -d
docker image prune

如提示

1
2
WARNING! This will remove all dangling images.
Are you sure you want to continue? [y/N]

输入y即可

  1. 可以通过以下命令卸载Nginx Proxy Manager
1
2
3
cd /opt/npm
docker-compose down
rm -rf /opt/npm

参考资料