特征
- 美观和安全的管理界面基于 Tabler
- 轻松创建转发域,重定向,Steams 和 404 主机,而无需对 Nginx 一无所知
- 使用 Let’s Encrypt 免费 SSL 或提供您自己的自定义 SSL 证书
- 主机的访问列表和基本 HTTP 身份验证
- 高级 Nginx 配置可供超级用户使用
- 用户管理、权限和审核日志
Nginx Proxy Manager
Nginx proxy manager 是一个很简单的反向代理工具。
官网:https://nginxproxymanager.com/
门槛极低,操作简单,不需要你掌握很复杂的 Nginx 配置知识,只需要几步就能很轻松完成反向代理的设置和 SSL 证书的部署。
背景
在一个主机下创建了多个docker,域名只能访问80端口,要想访问其他的docker只能在域名后面加端口号,通过Nginx Proxy Manager反向代理的方法,一个域名一个公网IP一个端口对应一个二级域名即可巧妙去掉端口
准备工作
- 一个域名(可以在 freenom 申请一个免费的域名)
- 一个 cloudflare 账号
- 一台具有公网ip的主机
将域名解析到自己的公网IP
步骤概要:
- 注册一个Cloudflare账号;
- 添加你的网站到Cloudflare中,获取Cloudflare的域名解析服务器(NS);
- 前往你的域名注册网站,修改域名解析服务器(NS)为Cloudflare的,Cloudflare会自动获取已有的解析记录,但有时候也会获取不全,你需要人工检查一下。
- 按需在Cloudflare中添加网站解析记录,常用的解析记录是A记录,用于将域名指向网站的服务器IP
Docker安装nginx proxy manager
安装docker-compose
1 2 3 4 5 6 7 8 9 10 11
| #国外鸡 sudo curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
#国内鸡 sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
#添加可执行权限 sudo chmod +x /usr/local/bin/docker-compose
#测试安装结果 docker-compose --version
|
创建安装目录
1 2 3 4 5
| sudo -i mkdir -p /root/data/docker_data/npm cd /root/data/docker_data/npm
|
创建docker-compose.yml的文件
复制下列代码黏贴到文件里
1 2 3 4 5 6 7 8 9 10 11 12
| 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 文件夹中
|
ctrl+x 然后Y然后回车退出编辑模式,并启动Docker
运行 Nginx Proxy Manager
1 2 3 4
| #面板的登录地址为:ip+81端口 #初始账号密码 Email: admin@example.com Password: changeme
|
更新 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]
|
卸载 Nginx Proxy Manager
1 2 3 4 5
| cd /root/data/docker_data/npm docker-compose down rm -rf /root/data/docker_data/npm # 完全删除映射到本地的数据
|