2017-01-15 7 views
0

Как настроить одну папку с именем «проекты», где каждая подпапка является субдоменом? Пример: У меня есть сайт example.com На моем сервере у меня есть папкаПапка конфигурации Nginx для поддоменов

/var/www/html/example.com 

Я создал новую папку:

/var/www/html/projects/ 

И все папки в директории 'проектов является новый поддомен:

/var/www/html/projects/site1 = site1.exapmle.com 

С благодарностью


@ ричарда-кузнец, я поставил конфигурационный файл projects в /etc/nginx/sites-available с содержанием:

server { 
listen 80; 

root /var/www/html/projects/$domain; 
index index.php index.html index.htm index.nginx-debian.html; 

server_name ~^(www\.)?(?<domain>\.example\.com)$; 

location/{ 
    try_files $uri $uri/ =404; 
} 

location ~ \.php$ { 
    include snippets/fastcgi-php.conf; 
    fastcgi_pass unix:/run/php/php7.0-fpm.sock; 
} 

location ~ /\.ht { 
    deny all; 
} 

} // вместо example.com мой DOMEN имя.

Создана символьная ссылка в /etc/nginx/sites-enabled и запущена service nginx reload. Но после открытия site1.example.com. Я получаю "This site can’t be reached". Но мой example.com отлично работает.

+0

проверить журналы вашего сервера в первую очередь, может быть любая проблема с fcgi –

+1

Вы настроили DNS для поддомена 'site1'? –

+0

** Всегда ** проверяйте с помощью [curl] (http://curl.haxx.se). Браузеры слишком «удобны» (читайте: недостаточно для диагностики). – Melvyn

ответ

0

Использование регулярного выражения в директиве server_name позволит вам захватить имя субдомена и использовать его в директиве root.

server { 
    server_name ~^(www\.)?(?<domain>\.example\.com)$; 
    root /var/www/html/projects/$domain; 
    ... 
} 

См. this document для получения дополнительной информации.

+0

Спасибо! После тестирования я добавил новую информацию на свой вопрос. Пожалуйста, посмотрите. – Pshenichniy