搭建前提:
动态公网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前缀访问
原版
docker run -d \
--name=FanDai \
-p 8181:8181 \
-p 8080:8080 \
-p 4443:4443 \
-v /root/FanDai:/config:rw \
jlesage/nginx-proxy-manager
中文版
docker run -d \
--name=FanDai \
-p 8181:81 \
-p 8080:80 \
-p 4443:443 \
chishin/nginx-proxy-manager-zh:latest
访问nginx管理地址进行反代配置,访问地址是 http://dockerIP:8181。默认账号密码是 [email protected] 密码是 changeme 登陆进去后修改邮箱和密码,后续用新的邮箱和密码登陆即可
进去后,先通过Let's Encrypt申请泛域名的证书,假设我的域名是 http://abc.com,那申请证书就使用*.http://abc.com 来申请,这样后续任何子域名https访问都是没问题的了,例如 book.abc.com
这里有个小bug,申请界面会一直转圈转几分钟到超时,实际已经申请成功了,F5刷新下界面,就可以考到类似上图“证书申请1”中的泛域名证书了,这个证书给后面所有的子域名配置。docker作者的文档提到证书在到期一个月前会自动续期,到时继续观察下这个流程是否丝滑。。
基础准备完后,就开始配置子域名的解析,在阿里云(或你的域名商)域名管理界面,将所有子域名都配置CNAME到根域名,例如http://book.abc.com就CNAME到http://abc.com
然后在nginx界面配置所需的子域名反代,就OK了