反向代理——Nginx Proxy Manager

代理

代理可以分为两种类型:正向代理和反向代理

  1. 正向代理

    forward-proxy

    主要代理的对象为客户端,比如在访问google等网站资源时,我们需要使用科学上网工具,帮我们去访问我们访问不到的资源。

  2. 反向代理

reverse-proxy

​ 主要代理的对象为服务器端,比如我们打电话给某个公司的前台,前台然后会根据我们的需求转接到公司内部真正处理相应业务的部门。

Nginx Proxy Manager

nginx proxy manager 是一个很方便使用的反向代理工具

前置:服务器上有docke环境

创建安装目录

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

cd /root/data/docker_data/npm

vim docker-compose.yml

docker配置文件

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' # 保持默认即可,不建议修改左侧的80
- '81:81' # 冒号左边可以改成自己服务器未被占用的端口
- '443:443' # 保持默认即可,不建议修改左侧的443
volumes:
- ./data:/data # 冒号左边可以改路径,现在是表示把数据存放在在当前文件夹下的 data 文件夹中
- ./letsencrypt:/etc/letsencrypt # 冒号左边可以改路径,现在是表示把数据存放在在当前文件夹下的 letsencrypt 文件夹中

其中81端口为本地启动nginx proxy manager服务的端口,80端口和443端口主要是监听http和https请求的端口

注意:若修改了80端口和443端口,后续在npm中申请免费ssl证书的时候会申请失败

运行并且访问npm

  1. 运行npm
1
docker compose up -d
  1. 访问npm

​ 容器启动成功后,访问http:ip:81即可登录npm后台管理界面

​ 初始的账号密码为:

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

更新npm

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 标记和未被容器使用的镜像

卸载npm

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

docker-compose down

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