Nginx proxy manager是一个很简单又很有用的反向代理工具。他的使用门槛很低,操作比较简单,不需要你掌握很复杂的Nginx配置知识,只需要几步就能很轻松完成反向代理的设置和SSL证书的部署。 Nginx proxy manager官网:https://nginxproxymanager.com/
开始部署Nginx Proxy Manager
服务器环境:推荐使用 Debian 10(Ubuntu 20.04也可以)或以上版本
1.添加SWAP虚拟内存(非必须)
设置 SWAP 可以用脚本:
wget -O box.sh https://raw.githubusercontent.com/BlueSkyXN/SKY-BOX/main/box.sh && chmod +x box.sh && clear && ./box.sh
然后选择 18,再按提示输入你想要扩容的数值即可。
2.升级 packages
sudo -i # 切换到 root 用户 apt update -y # 升级 packages apt install wget curl sudo vim git -y # Debian 系统比较干净,安装常用的软件
3.安装 Docker 环境
安装 Docker(非大陆服务器)
wget -qO- get.docker.com | bash
查看 docker 版本
docker -v
设置开机自动启动
systemctl enable docker
安装 Docker-compose(非大陆服务器)
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
查看 docker-compose 版本
docker-compose --version
安装 Docker(国内服务器)
curl -sSL https://get.daocloud.io/docker | sh
查看 docker 版本
docker -v
设置开机自动启动
systemctl enable docker
安装 Docker-compose(国内服务器)
curl -L https://get.daocloud.io/docker/compose/releases/download/v2.1.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose docker-compose --version #查看 docker-compose 版本
修改 Docker 配置(可选)
内容参考:烧饼博客
以下配置会增加一段自定义内网 IPv6 地址,开启容器的 IPv6 功能,以及限制日志文件大小,防止 Docker 日志塞满硬盘:
在服务器路径:/etc/docker/daemon.json 文件中填入以下内容:(注意:需要先创建daemon.json文件)
{ "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 }
然后重启 Docker 服务:
systemctl restart docker
4.安装 Nginx Proxy Manager
创建安装目录
创建一下安装的目录:
sudo -i mkdir -p /root/data/docker_data/npm cd /root/data/docker_data/npm
在服务器路径:/root/data/docker_data/npm 文件夹里创建 docker-compose.yml 文件,在里面填入以下内容:
version: '3' services: app: image: 'jc21/nginx-proxy-manager:latest' restart: unless-stopped ports: - '80:80' # 冒号左边可以改成自己服务器未被占用的端口 - '81:81' # 冒号左边可以改成自己服务器未被占用的端口 - '443:443' # 冒号左边可以改成自己服务器未被占用的端口 volumes: - ./data:/data # 冒号左边可以改路径,现在是表示把数据存放在在当前文件夹下的 data 文件夹中 - ./letsencrypt:/etc/letsencrypt # 冒号左边可以改路径,现在是表示把数据存放在在当前文件夹下的 letsencrypt 文件夹中
5.检查端口是否被占用
查看端口是否被占用(以 81 为例),输入:
lsof -i:81
查看 81 端口是否被占用,如果被占用,重新自定义一个端口;
如果什么也没出现,表示端口未被占用,我们可以继续下面的操作了~
如果出现:
-bash: lsof: command not found
则运行下面命令安装 lsof:
apt install lsof
如果端口没有被占用(被占用了就修改一下端口,比如改成 82,注意 docker 命令行里和防火墙都要改)
6.运行并访问 Nginx Proxy Manager
最后 cd来到 dockercompose 文件所在的文件夹下:
cd /root/data/docker_data/npm
docker-compose up -d
这个时候,理论上来说,我们就可以输入 http://ip:81 访问Nginx Proxy Manager网页了。
7.默认登陆名和密码:
Email: admin@example.com Password: changeme
注意:
1、不知道服务器 IP,可以直接在命令行输入:curl ip.sb,会显示当前服务器的 IP。
2、遇到访问不了的情况,请再次检查在宝塔面板的防火墙和服务商的后台防火墙是否打开对应了端口。
登录页面:
8.更新 Nginx Proxy Manager
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 标记和未被容器使用的镜像
出现下面提示就输入 y:
WARNING! This will remove all dangling images. Are you sure you want to continue? [y/N]
总的来讲,利用 Docker 搭建的应用,更新非常容易~
9.卸载 Nginx Proxy Manager
cd /root/data/docker_data/npm docker-compose down rm -rf /root/data/docker_data/npm # 完全删除映射到本地的数据
这样Nginx Proxy Manager就可以卸载得很干净。