você também pode fazer
server_name _;
root /opt/railo/tomcat/webapps/$host;
Não tenho certeza se é uma boa ideia, mas testei e funciona.
Estou tentando economizar algum tempo na minha máquina de desenvolvimento, não criando uma nova configuração de servidor nginx para cada novo site que eu testar. Eu estou querendo saber se existe uma maneira para o nginx alterar o diretório raiz com base no domínio que estou carregando.
Então, se eu tiver
mysite.loc
myothersite.loc
something.loc
O Nginx irá olhar para dentro
www/mysite.loc
www/myothersite.loc
www/something.loc
Isso permitiria que eu testasse coisas novas em domínios simulados um pouco mais rápido, já que não tenho que mexer com uma nova configuração / etc / nginx / sites-available para cada um.
server {
listen 80;
server_name *.loc;
root /www/$host;
index index.html;
}
Isso é possível? Existe outra maneira de fazer isso?
A configuração do nginx tem algo que pode ajudá-lo:
server {
server_name ~^(www\.)?(?<domain>.+)$;
root /sites/$domain;
}
Eu acho que é exatamente o que você quer, certo? Procure por capturas nomeadas para chegar a esta parte da documentação, mas peço-lhe que leia toda a descrição de server_name
.
Como a diretiva root não é permitida na condição if. Se você tiver um julgamento complicado, consulte essa solução.
set $PROJECT "release"; if ($host ~ "beta.my.site") { set $PROJECT "beta"; } root /home/northtree/$PROJECT/;
Tags nginx