我有一些 nginx 配置片段,用于添加位置,即向 fastcgi 服务器发送特定路径的请求。对于使用 ansible 的干净部署,我想使用文件夹/etc/nginx/conf.d
将它们添加到那里。
问题是,location /something
属于服务器块,并且默认服务器已在中定义/etc/nginx/sites-enabled/default
。并且当我想部署更多不同位置时,它们不需要每个包含都有自己的虚拟主机。
甚至一个网站也可能sites-enabled
有用,但它仍然应该是可组合的。不同的代码片段可以包含在同一个配置中,而无需知道其他代码片段是否已安装。
是否有一种干净的方法可以从配置片段中包含位置块而不修改默认配置?
答案1
nginx 中的 include 语句也适用于部分配置,而不仅仅是整个服务器。因此,您可以创建一个目录,例如 /etc/nginx/default-site-locations/,并将所有 location_1.conf ... location_n.conf 文件放在那里。
然后,在你的默认配置中,使用以下命令包含该目录中的所有 conf 文件:include /etc/nginx/default-site-locations/*.conf