Назад | Перейти на главную страницу

Поддомены Nginx не работают должным образом

Я пытаюсь создать поддомен в своем экземпляре Digital Ocean, и из того, что я могу сказать, все как в файле зоны моего домена, так и в конфигурации Nginx моего сайта верны - есть ли что-то очевидное, что я здесь делаю неправильно?

Основной домен работает как надо - ничего не показывает, так как я еще не настроил файлы сайта. Поддомен всегда перенаправляется на другой домен, который я размещал в том же экземпляре DO.

Зона DNS:

$ORIGIN smsteammenus.com.
$TTL 1800
smsteammenus.com. IN SOA ns1.digitalocean.com. hostmaster.smsteammenus.com. 1452088962 10800 3600 604800 1800
smsteammenus.com. 1800 IN NS ns1.digitalocean.com.
smsteammenus.com. 1800 IN NS ns2.digitalocean.com.
smsteammenus.com. 1800 IN NS ns3.digitalocean.com.
smsteammenus.com. 1800 IN A **IP address**
www.smsteammenus.com. 1800 IN CNAME smsteammenus.com.
*.smsteammenus.com. 1800 IN CNAME smsteammenus.com.
staging.smsteammenus.com. 1800 IN A **the same IP address as above**
*.staging.smsteammenus.com. 1800 IN CNAME staging.smsteammenus.com.

Конфигурация поддомена Nginx:

server{
    listen 80;
    listen [::]:80;

    root /var/www/smsteammenus.com/staging;
    index index.php index.html index.htm;

    server_name staging.smsteammenus.com;

    location / {
        # try_files $uri $uri/ =404;
        try_files $uri $uri/ /index.php?q=$uri&$args;
    }

    error_page 404 /404.html;

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
          root /usr/share/nginx/html;
    }

    location ~ \.php$ {
           try_files $uri =404;
           fastcgi_split_path_info ^(.+\.php)(/.+)$;
           fastcgi_pass unix:/var/run/php5-fpm.sock;
           fastcgi_index index.php;
           include fastcgi_params;
     }
}

Конфигурация основного домена Nginx:

server {
    listen 80;
    listen [::]:80;

    root /var/www/smsteammenus.com/html;
    index index.php index.html index.htm;

    server_name smsteammenus.com www.smsteammenus.com;

    location / {
        # try_files $uri $uri/ =404;
        try_files $uri $uri/ /index.php?q=$uri&$args;
    }

    error_page 404 /404.html;

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
          root /usr/share/nginx/html;
    }

    location ~ \.php$ {
           try_files $uri =404;
           fastcgi_split_path_info ^(.+\.php)(/.+)$;
           fastcgi_pass unix:/var/run/php5-fpm.sock;
           fastcgi_index index.php;
           include fastcgi_params;
     }
}

Я сравнил аналогичные вопросы по ServerFault безрезультатно и трижды проверил, что я выполнил все необходимые шаги (привязка к сайтам, перезапуск nginx и т. Д.), Но не могу заставить это работать.

А пока поигрался с этим.

Во-первых, я создал полностью отдельный каталог для поддомена, вместо того, чтобы пытаться запускать оба домена из одного и того же каталога. Затем я скопировал содержимое второго файла конфигурации Nginx в конфигурацию Nginx основного домена, изменил каталоги, которые домен должен был просмотреть, и все заработало.