docker部署nginx-proxy-manager,图形化管理nginx反向代理,实现不同子域名访问家庭搭建的各类服务

背景:

家里之前有个QNAP 的NAS,2022年过年时候QNAP发布了漏洞声明,建议纯域名访问NAS规避漏洞,这算是个契机,外加自己爱折腾,就将之前采用的、在路由器上使用不同端口映射各类服务,改为nginx反代——统一访问端口,但通过不同子域名访问。这避免了IP直接访问NAS的问题。做这个反代,还有个想法是把bitwarden在docker中也做起来,之前测试部署这个好像也需要反代。

搭建前提:

  1. 动态公网IP:电信宽带可以申请ip v4的动态公网IP,打10000号申请,移动和联通是不行的;
  2. DDNS(动态域名解析):我从阿里万网上买的tech后缀的便宜域名,199买了10年的,配合软路由上aliDDNS解析,或者部署aliddns的docker都可以实现动态域名解析。
  3. docker环境:群辉 NAS,QNAP NAS,或者linux系统,ikuai/openwrt软路由系统等,都可以安装docker环境。推荐 NAS或者软路由上安装docker,图形化界面方便部署和管理镜像;

安装步骤:

  • 部署完毕后,访问管理端口默认部署的话 8181是管理端口,路由器上将外网映射到这个docker的4443端口,外网均采用https前缀访问

端口映射

  • 访问nginx管理地址进行反代配置,访问地址是 http://dockerIP:8181。默认账号密码是 admin@example.com 密码是 changeme 登陆进去后修改邮箱和密码,后续用新的邮箱和密码登陆即可

  • 进去后,先通过Let's Encrypt申请泛域名的证书,假设我的域名是 http://abc.com,那申请证书就使用*.http://abc.com 来申请,这样后续任何子域名https访问都是没问题的了,例如 book.abc.com

证书申请1

证书申请2

  • 这里有个小bug,申请界面会一直转圈转几分钟到超时,实际已经申请成功了,F5刷新下界面,就可以考到类似上图“证书申请1”中的泛域名证书了,这个证书给后面所有的子域名配置。docker作者的文档提到证书在到期一个月前会自动续期,到时继续观察下这个流程是否丝滑。。
  • 基础准备完后,就开始配置子域名的解析,在阿里云(或你的域名商)域名管理界面,将所有子域名都配置CNAME到根域名,例如http://book.abc.com就CNAME到http://abc.com
  • 然后在nginx界面配置所需的子域名反代,就OK了

参考和其他说明:

  1. 除了阿里云买域名实现DDNS,腾讯云DNSPod买域名也可以实现,只是我习惯了阿里云的DDNS,腾讯云详见 使用docker搭建nginx proxy manager实现反向代理和SSL证书申请 - 哔哩哔哩 (bilibili.com)
  2. B站有Up主介绍nginx-proxy=manager这个应用,有兴趣可以听听前面的功能介绍,后面的要买VPS什么的没必要,是另外个套路了,另外不建议在阿里云或腾讯云之外买域名,没有现成的插件或者docker,DDNS估计都会很头疼。【Docker系列】一个反向代理神器——Nginx Proxy Manager_哔哩哔哩_bilibili
  3. 这个应用图形化管理很方便,有个小坑建议填填,无需ssh工具,docker命令行界面进去修改proxy.conf文件即可,详见:nginx-proxy-manager填坑
  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker是一种开源的容器化平台,可轻松部署、运行和管理容器化应用程序。Nginx是一款高性能的Web服务器和反向代理服务器,而Nginx Proxy Manager则是一个基于Nginx图形化界面工具,用于管理Nginx代理服务器。 要在Docker部署Nginx Proxy Manager,需要执行以下步骤: 1. 首先,确保你的系统上已安装了Docker。你可以通过命令"docker --version"来检查是否已成功安装。 2. 打开终端或命令提示符,并使用Docker命令从Docker Hub下载Nginx Proxy Manager的镜像。可以使用以下命令下载并创建容器: ``` docker run -d -p 80:80 -p 81:81 -p 443:443 -v nginx-proxy-manager_data:/data -v /var/run/docker.sock:/var/run/docker.sock jlesage/nginx-proxy-manager ``` 3. 这个命令会从Docker Hub上下载最新版本的Nginx Proxy Manager镜像,并在本地创建一个名为"nginx-proxy-manager"的容器。该容器将监听80、81和443端口,并将其映射到宿主机上。 此外,该命令还将容器中的/data目录映射到名为nginx-proxy-manager_data的Docker卷,以及将宿主机的/var/run/docker.sock文件映射到容器的/var/run/docker.sock文件中。 4. 当容器成功创建后,你可以通过访问http://localhost:81来访问Nginx Proxy Manager图形化界面。在该界面中,你可以添加和管理Nginx反向代理服务器、创建和编辑主机、设置SSL证书等。 通过以上几个简单的步骤,你可以在Docker中轻松地部署Nginx Proxy Manager实现代理服务器的管理与配置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值