2016-01-27 11 views
6

Używam symboli wieloznacznych w server_name. Chcę przekierować wszystkie subdomeny example.com (skonfigurowanego jako * .example.com) do foo.com wyjątkiem xyz.example.comJak wykluczyć określone poddomeny nazwa_serwera w konfiguracji nginx

mam konfigurację następująco

server { 
     listen   80; 
     server_name  *.example.com; 
     location/{ 
      proxy_pass  http://$1.foo.com; 
     } 
} 

nie chcę zmienić każdy wniosek przyjście do xyz.example.com

Odpowiedz

4

Potrzebujesz co najmniej dwóch bloków serwera, a nginx wybierze bardziej szczegółowy blok serwera, aby obsłużyć żądanie. Aby uzyskać szczegółowe informacje, patrz this document.

Musisz blok serwera dla xyz.example.com takich jak:

server { 
    listen  80; 
    server_name xyz.example.com; 

    location/{ 
     proxy_pass http://$1.foo.com; 
    } 
} 

Następnie albo default_server lub dzika serwer kart, takich jak:

server { 
    listen 80; 
    server_name *.example.com; 
    return http://foo.com/; 
} 

Lub:

server { 
    listen 80 default_server; 
    return http://foo.com/; 
} 
+0

Dzięki @Richard to działa dla mnie. –

Powiązane problemy