2016-05-01 19 views
1

Zum Beispiel habe ich eine Domain example.com, erstellt die Web-App Subdomain wenn Benutzer anmelden.Wie man eine bestimmte Subdomain von der Wildcard-Domain (Nginx) ausschließt

  • foo.example.com wird
  • bar.example.com an die gleiche Stelle verweisen auf die gleiche Stelle

Aber ich möchte darauf hinweisen wird eine Testumgebung zu schaffen, z.B demo.example.com, die auf ein anderes Projekt zeigen. Wenn Benutzer anmelden, wird es

  • foo.demo.example.com
  • bar.demo.example.com

Zeit, was ich habe

| Name   | Type | Value   | 
|----------------|-------|-----------------| 
| example.com. | A  | 123.123.123.123 | 
| *.example.com. | CNAME | example.com. | 

Und meine nginx config

server { 
    listen 80; 

    root /var/www/example.com/public; 
    index index.html index.htm index.php; 
    server_name example.com *.example.com; 

    location/{ 
     try_files $uri $uri/ /index.php?$query_string; 
    } 
    location ~ \.php$ { 
     try_files $uri /index.php =404; 
     fastcgi_split_path_info ^(.+\.php)(/.+)$; 
     fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; 
     fastcgi_index index.php; 
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
     include fastcgi_params; 
    } 

    location ~ /\.ht { 
     deny all; 
    } 
} 

Wie kann ich 1 für Testumgebung erstellen?

Antwort

2

Sie müssen einen neuen Serverblock mit der Subdomäne fqdn als Servername erstellen, und nginx folgt dieser Prioritätsreihenfolge.

  1. Namen Exact
  2. Longest Wildcard Name beginnend mit einem Stern, z.B. "* .example.org"
  3. Längster Platzhaltername, der mit einem Stern endet, z. „Mail. *“
  4. ersten passender regulärer Ausdruck (in der Reihenfolge ihres Auftretens in einer Konfigurationsdatei)

Für weitere Informationen .: http://nginx.org/en/docs/http/server_names.html