como posso configurar o Nginx restringir a milhares de server_name diferentes sem criar milhares de arquivos de configuração externos ou gravar uma linha server_name muito longa?
Na verdade, eu gostaria que o Nginx fosse um proxy reverso apenas para server1.com, server2.com, etc ...
A melhor solução para mim seria ter um único arquivo de configuração externo contendo meus nomes de servidor restritos: server1.com, server2.com, etc ...
É possível ?
Ok, obrigado por suas respostas, ele funciona sem reg. expressões. Apenas uma grande lista server_name, conforme explicado pelo kolbijack. Valeu.
Respostas:
Você pode colocar a diretiva server_name em um arquivo por si só e depois incluí-la no bloco do servidor:
O arquivo server_names apenas precisa de server_name na parte superior e; na parte inferior para ser uma diretiva válida.
fonte
ServerAlias
diretivas e até 16 milhões deDeny from
diretivas) no Apache. 5.000 domínios produzem um atraso mensurável, porém pequeno. Ao aumentar o número, descobri que o atraso começou a se tornar visível em cerca de 50.000. Com o Apache (e provavelmente também com o nginx), a lista é mantida na RAM, o que significa que, com o maior conjunto que eu tentei, eu poderia iniciar apenas um processo filho na minha RAM disponível.server_name
directiva e responderRequest rate: 36900.6 req/s (0.0 ms/req)
Request rate: 34716.8 req/s (0.0 ms/req)
A
server_name
declaração no seuserver {}
bloco pode ser uma expressão regular, isso deve permitir que você combine server_name s dentro de um padrão definido.Mais informações sobre isso podem ser encontradas aqui: http://nginx.org/en/docs/http/server_names.html#regex_names
fonte