Sua melhor opção é, de fato, gerar uma parte do arquivo de configuração e incluí-la, pois não há como o nginx saber os IPs autorizados no cabeçalho do Host sem ela.
server {
listen 80;
server_name mypublicdomain.com anotherdomain.com;
include conf.d\domain-ips;
[ ... ]
}
Com o arquivo domain-ips contendo:
server_name x.x.x.x; # Public IP
server_name x.x.x.x; # Private IP