前言:
关于 Nginx-Proxy-Manager 的发展历程和细致功能介绍请参考官网 —>点击直达
本篇博客只介绍我在docker容器中部署和使用配置的相关经验,因为我家里使用的是普通宽带没有固定公网IP地址,所以接下来的配置中我并没有使用http的tcp80端口和https的tcp443端口作为侦听端口,下文中我将Nginx Proxy Manager简称为NPM介绍。
但是没有公网IP我肯定是不愿意的,所以我找运营商帮我把光猫改成了桥接模式,我的爱快软路由拨号,拿到一个动态的公网IP地址,然后我申请了一个域名配合爱快软路由内的动态域名解析功能,实现通过域名的形式访问内网的服务和应用(其实最终也是需要使用域名的,域名好记)。
不罗嗦了,我们开始部署吧!
部署前准备
1、需要有部署了docker和docker-compose的服务器,比如Ubuntu服务器或者Centos服务区或者Debian服务器,本内容用的Ubuntu演示(建议以后大家都用Ubuntu,因为Ubuntu一直在维护,其他操作系统的旧版本可能以后不再维护了,会有bug和安全漏洞。
2、Ubuntu20.04(清华大学镜像站提供):点击下载
3、BT磁力链接(next.itellyou.cn提供):
magnet:?xt=urn:btih:C44F931B1A3986851242D755D0AC46E9FA3C5D32&dn=ubuntu-20.04-live-server-amd64.iso&xl=952107008
4、Ubuntu更新源:
4.1、用linux的vi或者vim或者nano编辑器编辑/etc/apt/sources.list文件
vi /etc/apt/sources.list
4.2、进去后按先小d在按大G删除当前目前下所有内容,然后按 i 建进行编辑,然后复制下面的更新源,再按ESC退出编辑模式,然后按Shift+冒号输入wq回车(wq=保存退出)
deb https://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
5、关于docker和docker-compose的部署,我有一个较为简单的方法,就是借助1Panel一键部署,1Panel类似宝塔面板有管理平台,1Panel后续为大家介绍,这里先用1Panel一键部署docker和docker-compose,在安装1Panel时脚本中的命令会帮你把docker和docker-compose一起部署了,比较省事。1Panel官网。另外在第六步也为大家指引了docker官网部署的指导链接。
5.1、Ubuntu一键部署1Panel脚本
curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sudo bash quick_start.sh
5.2、RedHat / CentOS一键部署1Panel脚本
curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sudo bash quick_start.sh
5.3、Debian一键部署1Panel脚本
curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && bash quick_start.sh
部署完后登录上去就是下面的样子
6、Ubuntu部署Docker和Docker-compose(Docker官网):点击直达
7、使用docker-compose部署NPM
(默认你以上的Ubuntu安装好了docker和docker-compose了,按照下面的步骤部署NPM。)
7.1、在~/data/docker_data/npm目录下创建docker-compose.yml文件
mkdir -p ~/data/docker_data/npm
cd ~/data/docker_data/npm
vi docker-compose.yml
7.2、在英文状态的输入法下,按下键盘的:i 键,左下角出现–INSERT–后,粘贴下面的信息贴入,然后,同样在英文输入法下,按ESC,然后 :wq 保存退出。
version: '3'
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '397:80' # 因为我家里公网80端口被封了,所以我用397代替,如果你有80端口的使用权限,这里把397改成80
- '197:81' # 可以把冒号左边的197端口修改成你服务器上没有被占用的端口,这个端口是web管理npm的端口
- '297:443' # 因为我家里公网443端口被封了,所以我用297代替,如果你有443端口的使用权限,这里把297改成443
volumes:
- ./data:/data # 点号表示当前文件夹,冒号左边的意思是在当前文件夹下创建一个data目录,用于存放数据,如果不存在的话,会自动创建
- ./letsencrypt:/etc/letsencrypt # 点号表示当前文件夹,冒号左边的意思是在当前文件夹下创建一个letsencrypt目录,用于存放证书,如果不存在的话,会自动创建
7.3、启动NPM
docker-compose up -d # -d 表示后台运行,如果你用的是 docker-compose的话,用这条命令
因为我俩个都安装了,所以都可以用,1Panel默认安装docker-compose,用上面的就行。
docker compose up -d # 如果你用的是 docker-compose-plugin的话,用这条命令
7.4、安装好之后,进入npm的web控制台进行配置,用你服务的ip地址加197端口进去(197是你自己定义的管理端口)
使用默认密码进去后,要求更改你的新账户;邮箱(后期登录用的是邮箱登录的)和密码。
默认账户:
admin@example.com
默认密码:
changeme
7.5、进去后,需要先将你的域名证书导入。
7.6、配置反向代理
7.6.1、新加一个代理服务
配置说明:
Domain Names:这个域名是你在你的域名服务上做的A记录解析的域名,比如@或者*。
Scheme:这个是你内网访问10.225.97.11的8090端口协议,正常都是http。
Forward Hostname / IP :这个ip或者域名是你要代理的服务器的ip或者域名。
Forward Port:是你内网访问这个服务的端口。
7.6.2、配置绑定证书,开启ssl加密访问
7.7、去爱快软路由上配置端口映射,映射NPM的https端口297。
7.8、验证外网访问是加密的https形式
7.9、还可以通过更改主机名,实现https加密访问内网其他的服务,比如npm的web。