我尝试使用 nginx 配置带有和不带有额外每个虚拟主机配置的虚拟主机。我想到了这样的事情:
server {
listen 81;
server_name ~^(www\.)?(?<sname>.+?)$;
root /var/www/$sname;
include /etc/nginx/sites/$sname;
access_log /var/log/nginx/$sname/access.log;
error_log /var/log/nginx/$sname/error.log;
}
然后我可以只touch /etc/nginx/mysite.example.com
添加一个带有静态 html 的新站点,同时我可以编辑 vhost 的文件以添加例如反向代理指令或一些重写规则。
问题是,nginx 似乎在启动时包含了配置。拥有类似的东西会更干净
for $config in /etc/nginx/sites:
{
server_name $config
root /var/www/$config
include $config
[...]
}
它应该在开始时运行,而不是在对 vhost 的第一个请求时运行。
我仍然不知道,如果脚本包含是可能的,但我正在使用脚本来生成静态配置,现在使用 jinja2 作为模板系统。