4 голоса 901 просмотр 11.02.2017 / 13:08
aNNiMON
Имеется работающий сервер с nginx. Сейчас директория /var/www/html является корневой для сайта.Необходимо настроить сервер так, чтобы отдельным пользователям соответствовал отдельный сайт. Например: пользователь annimon -> сайт annimon.com + поддомены пользователь web_demon -> сайт web_demon.com + поддомены. Структура следующая: /var/www/ - annimon/ - домашняя директория пользователя annimon - annimon.com/ - www/ - каталог для annimon.com - projects/ - каталог для projects.annimon.com - logs/ - логи для сайтов *.annimon.com - web_demon/ - домашняя директория пользователя web_demon - web_demon.com/ - www/ - xxx/ - logs/ Так-то вроде не сложно: создать пользователя, создать структуру каталогов, назначить права, настроить nginx, тем более есть мануал http://devacademy.ru/posts/nginx-ubuntu-1404/, но там без поддоменов. Но есть нюансы, которые мне не понятны. Например, что делать с группами, не отвалится ли www-data, как быть с server listen, реально ли перенаправить логи с поддомена в отдельный файл и т.д.?
Изм. aNNiMON
от 11.02.2017 / 13:25
11.02.2017 / 14:03
vlavolk
Для уточнения нужен мануал, в котором описаны все директивы объекта server. На удачу
11.02.2017 / 14:07
vlavolk
http://nginx.org/en/docs/http/server_names.html еще
11.02.2017 / 14:09
vlavolk
http://nginx.org/ru/docs/http/server_names.html там даже на ру есть
11.02.2017 / 14:10
vlavolk
И вот эти виртуальные хосты пошли от апача. в nginx имена серверов ассоциируются с доменными именами. Последствия сисадминов из хацапетовки
Ответы
1 голос mkdir -p /var/www/annimon/annimon.com/www mkdir -p /var/www/annimon/annimon.com/projects mkdir -p /var/www/annimon/logs Сразу же можно добавить html-страницы для примера, чтобы знать, какой из сайтов открывается: echo 'www' > /var/www/annimon/annimon.com/www/index.html echo 'projects' > /var/www/annimon/annimon.com/projects/index.html Создаём пользователя: adduser --home /var/www/annimon annimon Добавляем пользователя в группу crontab, чтобы ему был доступен крон: usermod -a -G crontab annimon Добавляем www-data в группу annimon, чтобы не было проблем с залитыми файлами: adduser www-data annimon Передаём права на директорию: chown -R annimon:annimon /var/www/annimon/ Настраиваем nginx Сделаем так, чтобы annimon.com был основным сервером, и если будет переход с незарегистрированного поддомена, чтобы перебрасывало на основной. Основной домен: /etc/nginx/sites-available/annimon.com
Активируем сайт, создав симлинк на конфиг в sites/enabled: ln -s /etc/nginx/sites-available/annimon.com /etc/nginx/sites-enabled/ Перезапускаем nginx: service nginx restart Заходим на сайт. Должна отобразиться страница с текстом "www". Теперь поддомен. Скопируем уже существующий конфиг и изменим. cp /etc/nginx/sites-available/annimon.com /etc/nginx/sites-available/projects.annimon.com
Обращаем внимание на listen 80, за ними не должно быть default_server - он остаётся единственным для всего сервера у главного домена. Активируем сайт: ln -s /etc/nginx/sites-available/projects.annimon.com /etc/nginx/sites-enabled/ Снова перезапускаем nginx: service nginx restart И теперь у нас должны открываться и сайт, и поддомен. Аналогичным образом создаём другие поддомены, только теперь можно копировать конфиг поддомена. После того, как закончили с одним пользователем, проделываем те же операции и для остальных пользователей. Всего: 1
|
Реклама |