Subdomínios NginX

3

Trabalhando na migração de servidores e sem sorte de configurar meus subdomínios. O comportamento que estou procurando é bastante simples:

  • www.domain.com & domain.com - > / var / www / live /
  • *. domain.com - > / var / www / * / (supondo que o subdiretório exista, caso contrário, redirecione para o site principal)

Eu tentei usar $ host em algumas configurações e tentei usar muitas variações de:

server_name ~^(.*)\.domain\.com$;

root /var/www/$1;

e

server_name ~^(?<subdomain>.+)\.domain\.com$;

root /var/www/$subdomain ;

Este é o comportamento básico do NginX, mas estou completamente perplexo e perdi muitas horas tentando invadir esse caminho. Alguém pode esclarecer a solução?

Obrigado antecipadamente!

    
por Peter Hanneman 18.05.2012 / 16:15

3 respostas

4

tente isto:

server {
    listen 80;
    server_name example.com *.example.com;
    root /var/www/example.com/$subdomain;
    set $subdomain "";
    if ($host ~* ^([a-z0-9-\.]+)\.example.com$) {
        set $subdomain $1;
    }
    if ($host ~* ^(www.)?example.com$) {
        set $subdomain "live";
    }

}
    
por 18.05.2012 / 16:24
3

Sua segunda diretiva server_name parece correta e deve funcionar (e é a melhor solução IMHO). A documentação sugere a seguinte sintaxe para versões mais antigas do PCRE, então você pode tentar isto:

server_name ~^(?P<subdomain>.+)\.domain\.com$;
root /var/www/$subdomain;
    
por 18.05.2012 / 20:07
1

Outras pessoas estão usando o mapa para ajudar a resolver esse problema. Aqui estão documentos diretos para o mapa .

Algumas outras coisas para verificar: Verifique a versão do seu Nginx que você está usando contra a versão mais recente. Se você estiver lendo a documentação on-line, eles podem estar referenciando comportamentos mais recentes do que aqueles que você realmente tem.

Além disso, entendo que a sintaxe de referência anterior, como ?<subdomain> , está ativada em parte em libpcre . Verifique man pcrepattern e veja se tem uma seção em "NAMED SUBPATTERNS".

    
por 18.05.2012 / 16:33

Tags