一、简介

Nginx proxy manager是一个很简单的反向代理工具。

官网:https://nginxproxymanager.com/

门槛极低,操作简单,不需要你掌握很复杂的Nginx配置知识,只需要几步就能很轻松完成反向代理的设置和SSL证书的部署。


二、安装 Nginx Proxy Manager

1. 前置

该安装方法是基于Docker安装,其余安装方式可从其他渠道查询
安装Docker:

2. 创建安装目录

1
2
3
4
5
sudo -i

mkdir -p /root/data/docker_data/npm

cd /root/data/docker_data/npm

3. 创建 Docker 安装文件

1
vim docker-compose.yml

英文输入法下,按i

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
version: "3"
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
# These ports are in format <host-port>;<container-port>
- '80:80' # Public HTTP Port
- '443:443' # Public HTTPS Port
- '81:81' # Admin Web Port
# Add any other Stream port you want to expose
# - '21:21'# FTP
environment:
DB_MYSQL_HOST: 'db'
DB_MYSQL_PORT: 3306
DB_MYSQL_USER: 'npm'
DB_MYSQL_PASSWORD: 'npm'
DB_MYSQL_NAME: 'npm'
# Uncomment this if IPv6 is not enabled on your host
# DISABLE IPV6:'true'
volumes:
- ./data:/data # 冒号左边可以改路径,现在是表示把数据存放在在当前文件夹下的 data 文件夹中
- ./letsencrypt:/etc/letsencrypt # 冒号左边可以改路径,现在是表示把数据存放在在当前文件夹下的 letsencrypt 文件夹中
depends on:
- db

db:
image: 'jc21/mariadb-aria:latest'
restart; unless-stopped
environment:
MYSQL_ROOT_PASSWORD: 'npm'
MYSQL_DATABASE: 'npm'
MYSQL_USER: 'npm'
MYSQL_PASSWORD: 'npm'
volumes :
- ./data/mysql:/var/lib/mysql

按一下esc,然后:wq保存退出

4. 运行并访问 Nginx Proxy Manager

1
docker-compose up -d

理论上我们就可以输入http://ip:81访问了。

默认登陆名和密码:

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

注意:
1、不知道服务器 IP,可以直接在命令行输入:curl ip.sb,会显示当前服务器的 IP。
2、遇到访问不了的情况,请再次检查在宝塔面板的防火墙和服务商的后台防火墙是否打开对应了端口。


三、更新 Nginx Proxy Manager

1
2
3
4
5
6
7
8
9
10
11
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
WARNING! This will remove all dangling images.
Are you sure you want to continue? [y/N]

输入y


四、卸载 Nginx Proxy Manager

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

docker-compose down

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

相关引用:

  1. 知乎 -【玩转docker】反向代理神器:Nginx Proxy Manager