2016-05-01 4 views
1

Например, у меня есть домен example.com, веб-приложение создаст субдомен при регистрации пользователя.Как исключить конкретный субдомен из подстановочного домена (Nginx)

  • foo.example.com будет указывать на тот же сайт
  • bar.example.com будет указывать на тот же сайт

Но я хочу, чтобы создать среду для тестирования, например demo.example.com, который укажет на другой проект. Когда пользователь зарегистрируется, он будет иметь

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

В настоящее время я имею

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

И моя конфигурация nginx

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; 
    } 
} 

Как создать 1 для тестовой среды?

ответ

2

Вам нужно будет создать новый серверный блок с субдоменом fqdn как имя_сервера, а nginx будет следовать этому порядку приоритета.

  1. Точное имя
  2. длинное название группового символа, начиная со звездочкой, например, "* .example.org"
  3. Самое длинное подстановочное имя, заканчивающееся звездочкой, например. «Почта. *»
  4. Первое соответствие регулярное выражение (в порядке появления в файле конфигурации)

Для получения дополнительной информации .: http://nginx.org/en/docs/http/server_names.html