先说说为什么需要动态加载配置吧:
我们正在做一项多站点服务,比如用户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