先说说为什么需要动态加载配置吧:
我们正在做一项多站点服务,比如用户username1拥有站点https://username1.example.com,现在这一步我已经解决了,办法是username指定到同名的文件夹下面:
if ($http_host ~* "^(.*)\.example\.com$") {
set $root /var/html/subdomains/$1;
}
root $root;通过上面可以看到,所有的子站点都在/var/html/subdomains这个文件夹下面。
但是产生了一个新的问题,我的这个子域名系统要求支持cname解析,即,要求子域名 https://username1.example.com能通过用户自己注册的域名 https://username1-domain.com 打开。
因此用户可以把username1-domain.com通过cname解析到username1.example.com,但是这是用户行为,因此需要动态的在系统中把username1-domain.com的请求解析到/var/html/subdomains/username1的server配置中,并且最好能提供https支持,即用户在后台上传自己的https证书,并自动配置到nginx的配置里,以让https://username1-domain.com可以正常的访问。
而此时用户注册的域名是没有规则的,无法通过上面的代码块做文件夹的映射。
所以上面的动态把任意域名解析到服务器的一个文件夹,该如何操作?
谢谢。
斯蒂芬大帝
慕容708150
随时随地看视频慕课网APP