Docker安装Nginx Proxy Manager

简介

Nginx Proxy Manager是一个基于Docker的轻量级、高性能的Web代理(同时也包括反向代理)和电子邮件代理。它具有用户友好的界面,可以很容易地创建和管理Nginx代理主机。

它的特点包括:

  • 简易的用户界面:对于不熟悉Nginx配置文件的用户来说,Nginx Proxy Manager提供了一个直观的界面,可以轻松地创建和管理Nginx代理主机。
  • SSL支持:Nginx Proxy Manager支持Let’s Encrypt,可以自动获取和续订SSL证书,保证通信的安全性。
  • 支持Websockets:Nginx Proxy Manager完全支持Websockets,这是许多现代Web应用所需要的。
  • 访问控制:可以对访问进行控制,例如,可以设置基本的HTTP认证,或者根据IP地址进行限制。
  • 支持HTTP/2:Nginx Proxy Manager支持HTTP/2,可以提供更高的传输效率。
  • 自定义Nginx配置:尽管Nginx Proxy Manager已经为大部分用途提供了默认的配置,但如果需要,还可以提供自定义Nginx配置。
  • Docker支持:Nginx Proxy Manager是基于Docker的,这意味着你可以在任何支持Docker的平台上运行它。
  • 100%免费和开源:Nginx Proxy Manager是开源的,可以自由使用和修改。


安装

创建目录

1
2
3
mkdir -p /root/data/docker_data/npm

cd /root/data/docker_data/npm

这边我们直接用 docker 的方式安装。

创建yml文件,写入下面的内容:

1
vim docker-compose.yml
1
2
3
4
5
6
7
8
9
10
11
12
version: '3'
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80' # 保持默认即可,不建议修改左侧的80
- '81:81' # 冒号左边可以改成自己服务器未被占用的端口
- '443:443' # 保持默认即可,不建议修改左侧的443
volumes:
- ./data:/data # 冒号左边可以改路径,现在是表示把数据存放在在当前文件夹下的 data 文件夹中
- ./letsencrypt:/etc/letsencrypt # 冒号左边可以改路径,现在是表示把数据存放在在当前文件夹下的 letsencrypt 文件夹中

配置防火墙

因为我安装了ufw防火墙,所以需要配置一下防火墙规则

1
2
ufw allow 81/tcp comment 'npm'
ufw status

image-20240604164248513


检测端口

查看端口是否被占用(以 81 为例),输入:

1
2
lsof -i:81  
#查看 81 端口是否被占用,如果被占用,重新自定义一个端口

如果啥也没出现,表示端口未被占用

如果出现:

1
-bash: lsof: command not found

运行:

1
apt install lsof  #安装 lsof

运行并访问

1
2
3
4
cd /root/data/docker_data/npm   
# 来到 dockercompose 文件所在的文件夹下

docker-compose up -d

image-20240604165155521

运行成功我们就可以输入 http://ip:81 访问了。

image-20240604165313375

默认登陆名和密码:

1
2
Email:    admin@example.com
Password: changeme

修改配置

先设置用户名和邮箱

image-20240604165711700

image-20240604165905837

接着修改默认密码:

image-20240604170022911

至此,已经完成了安装。

image-20240604170247284



更新

1
2
3
4
5
6
7
8
9
10
11
12
13
14
cd /root/data/docker_data/npm

docker-compose down

cp -r /root/data/docker_data/npm /root/data/docker_data/npm.archive
# 万事先备份,以防万一

docker-compose pull

docker-compose up -d
# 请不要使用 docker-compose stop 来停止容器,因为这么做需要额外的时间等待容器停止;docker-compose up -d 直接升级容器时会自动停止并立刻重建新的容器,完全没有必要浪费那些时间。

docker image prune
# prune 命令用来删除不再使用的 docker 对象。删除所有未被 tag 标记和未被容器使用的镜像


卸载

1
2
3
4
5
cd /root/data/docker_data/npm

docker-compose down

rm -rf /root/data/docker_data/npm # 完全删除映射到本地的数据


参考

【Docker系列】一个反向代理神器——Nginx Proxy Manager-我不是咕咕鸽 (laoda.de)