Assim que digitei a palavra "incluir" na pergunta acima, as rodas começaram a girar na minha cabeça.
Acontece que você pode simplesmente colocar as diretivas allow
e deny
em um arquivo de inclusão e elas funcionarão como esperado. O melhor de tudo, isso significa que posso combinar listas de IPs para que certos grupos de servidores possam acessar alguns diretórios, enquanto outros não podem.
Eu configurei assim:
/ etc / nginx / includes / admin-ips
allow 1.2.3.4/32;
allow 1.2.3.5/32;
/ etc / nginx / includes / private-ips
allow 10.0.0.0/8;
allow 172.16.0.0/12;
allow 192.168.0.0/16;
/ etc / nginx / includes / testing-ips
allow 4.5.6.7;
allow 8.9.10.11;
/etc/nginx/conf.d/server.conf
location ^~ /admin/ {
include includes/admin-ips;
deny all;
# rest of directives
}
location ^~ /tools/ {
include includes/admin-ips;
include includes/testing-ips;
include includes/private-ips;
deny all;
# rest of directives
}
location ^~ /tests/ {
include includes/admin-ips;
include includes/testing-ips;
deny all;
# rest of directives
}
Funciona como um encanto.