前期准备
安装docker程序
创建 “Nginx Proxy Manager” 容器
-
可以使用以下两种方法创建
1、手动拉取(导入)镜像,再创建容器(可视化docker面板推荐这种)
2、使用 “docker-compose.yml” 文件创建 -
下面演示第2种方法
1、在电脑上新建一个文本文档并重命名为 “docker-compose.yml” ,注意要把 “.txt”后缀删除
2、复制粘贴下面代码version: '3.8' #表示使用的是Docker Compose文件格式的3.8版本 services: app: image: 'jc21/nginx-proxy-manager:latest' restart: unless-stopped network_mode: host volumes: - ./data:/data - ./letsencrypt:/etc/letsencrypt
3、将 “docker-compose.yml” 放到docker容器目录(任意位置,能在安装docker程序的机器上找到就行)
4、打开终端,使用cd命令导航到存储“docker-compose.yml”文件的目录
5、执行下面命令创建容器docker-compose up -d
登录 “Nginx Proxy Manager” 面板
- docker程序所在的机器的防火墙放行 “81”、“80”、“443” 端口
- 浏览器输入地址:http://127.0.0.1:81 (注:127.0.0.1替换为docker程序所在的机器的IP地址)
- 默认账号:admin@example.com
- 默认密码:changeme
无法访问面板?
检查端口占用情况
-
检查是否有服务已经占用了 “80” 和 “443” 端口(注意是在安装了docker程序的机器上运行命令)
1、 在Linux系统上sudo netstat -tulpn | grep :80
sudo netstat -tulpn | grep :443
2、 在Windows系统上
netstat -an | find "80"
netstat -an | find "443"
3、 在Mac系统上
sudo lsof -i :80
sudo lsof -i :443
-
如果结果没有任何返回,则说明端口没有被占用,进一步说明不是端口被占用的原因导致无法访问,那可能是上一步创建容器出了问题
-
如果返回了像下面这样的结果,说明端口被占用,具体被哪个程序占用,可以在每一行的最后的字段找到,像下面这个就是被进程ID为 “797” ,程序名称为 “nps” 的程序占用
解决方法
-
如果不是端口占用的原因导致的无法访问,请仔细检查之前创建容器的步骤是否有疏漏
可以运行下面的命令检查容器是否在正常运行,docker-compose ps
下面这样就是正常运行状态
- 如果是端口被占用的原因导致的无法访问,将占用端口的程序更换端口即可
比如我的 “80” 和 “443” 端口是被 “nps” 这个程序占用的,我需要修改 “nps” 程序的配置文件改为其他端口,也就是说需要把 “80” 和 “443” 这两个端口给 “Nginx Proxy Manager” 用,“nps” 程序使用其他端口,修改完端口记得重启系统
修改账号信息
- 登录后会自动跳出修改名称和邮箱界面(注意登录账号是邮箱不是名称,用名称是无法登录的),修改完点 “save” 保存
- 然后会自动跳出修改密码界面,修改完点 “save” 保存
添加反代服务
- 主要作用是可以隐藏端口访问部署在服务器上的服务(只需要输入域名就可以跳转到相应的服务),增加服务器的安全性,灵活性和可维护性
-
注意事项
每一个域名都需要DNS解析到对应的IP地址
验证是否反代成功
- 点击反代服务的域名,正常情况会跳转到目标服务
- 可以看到成功跳转到了我部署的Alist网盘
- 如果跳转失败,请检查域名、IP地址、端口等信息是否填写错误
SSL证书自动续期
- 进入证书管理界面
可以看到这里已经有了一些证书,这些证书就是刚才添加反代服务的时候顺便申请并添加的,不需要再手动申请证书,证书有效期3个月,快到期的时候程序会自动续期(经过验证,只支持根域名,二级域名的自动续期,不支持泛域名)
域名重定向
- 主要作用是用 “域名A” 访问 “域名B”的服务