所在位置:
首页 >
营销资讯 >
建站知识 > 分享:docker部署nginx-proxy-manager,图形化管理nginx反向代理,实现不同子域名访问
分享:docker部署nginx-proxy-manager,图形化管理nginx反向代理,实现不同子域名访问
时间:2023-02-10 23:15:02 | 来源:建站知识
时间:2023-02-10 23:15:02 来源:建站知识
背景:
家里之前有个QNAP 的NAS,2022年过年时候QNAP发布了漏洞声明,建议纯域名访问NAS规避漏洞,这算是个契机,外加自己爱折腾,就将之前采用的、在路由器上使用不同端口映射各类服务,改为nginx反代——统一访问端口,但通过不同子域名访问。这避免了IP直接访问NAS的问题。做这个反代,还有个想法是把bitwarden在docker中也做起来,之前测试部署这个好像也需要反代。
搭建前提:
- 动态公网IP:电信宽带可以申请ip v4的动态公网IP,打10000号申请,移动和联通是不行的;
- DDNS(动态域名解析):我从阿里万网上买的tech后缀的便宜域名,199买了10年的,配合软路由上aliDDNS解析,或者部署aliddns的docker都可以实现动态域名解析。
- docker环境:群辉 NAS,QNAP NAS,或者linux系统,ikuai/openwrt软路由系统等,都可以安装docker环境。推荐 NAS或者软路由上安装docker,图形化界面方便部署和管理镜像;
安装步骤:
- docker中,下载镜像:jlesage/nginx-proxy-manager
- 创建容器时,参考说明 jlesage/nginx-proxy-manager - Docker Image | Docker Hub ,映射下文件夹就好了。一般使用,这个文件夹映射都可以不做。
- 部署完毕后,访问管理端口默认部署的话 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了
参考和其他说明:
- 除了阿里云买域名实现DDNS,腾讯云DNSPod买域名也可以实现,只是我习惯了阿里云的DDNS,腾讯云详见 使用docker搭建nginx proxy manager实现反向代理和SSL证书申请 - 哔哩哔哩 (bilibili.com)
- B站有Up主介绍nginx-proxy=manager这个应用,有兴趣可以听听前面的功能介绍,后面的要买VPS什么的没必要,是另外个套路了,另外不建议在阿里云或腾讯云之外买域名,没有现成的插件或者docker,DDNS估计都会很头疼。【Docker系列】一个反向代理神器——Nginx Proxy Manager_哔哩哔哩_bilibili
- 这个应用图形化管理很方便,有个小坑建议填填,无需ssh工具,docker命令行界面进去修改proxy.conf文件即可,详见:nginx-proxy-manager填坑