Как сделать конфигурацию Nginx c импортом всех конфигураций из домашних директорий?
Необходимо настроить Nginx на импорт всех рабочих конфигураций из рабочих директорий, всех пользователей системы, при этом есть желание чтобы все нерабочие конфигурации не глушили работу всего сервера, а просто исключались из обработки.
В общем случае неразрешимо и, скорее всего, ненужно.
Что вы будете делать если две конфигурации по отдельности работают, а вместо нет (например объявляют один и тот же server_name).
Может у вас на самом деле какая-то более простая задача?
@Lynn я для себя писал удобную систему для развертывания Nodejs приложений, что-то вроде маленького личного хостинга, есть генератор конфигураций nginx. Сейчас у меня есть один пользователь и единая конфигурация с импортом других из директории где создаются генерируемые конфиги. Когда система генерирует конфиг она соответственно правит импорт единого конфига. Я хотел сделать возможность работать в системе нескольким пользователям на стороне сервера а не NodeJS. Соответственно хотелось сделать обработку конфигов каждого пользователя, без написания приложения демона.
Для начала инклуд конфигов по пути /home/*/nginx.conf
Далее нужен вменяемая система отсева конфигов некорректных. Или запускайте на кждого юзера свой nginx или единый, но перел релоадом (а тем более рестартом) нужно проверить конфиг (тем же nginx в отдельном инстансе) и если тот корявый, то переименовать его в nginx.conf_fail
@psman решил проблему созданием отдельного пользователя и группы, с возможностью редактировать конфиги. Непосредственно редактировать конфиги нельзя - только через прослойку. Всякие пользовательские мелочи встраиваются конфиг через специальный парсер на подобии .htaccess в apache. С той лишь разницей что у меня все конфиги в json. И уже потом транслируются в nginx
Для проверки конфига nginx на ошибки, используйте команду:
# nginx -c /usr/local/etc/nginx/nginx.conf -t
Пример вывода при запуске nginx с опцией -t:
?2008/10/09 19:24:26 [info] 52494#0: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok2008/10/09 19:24:26 [info] 52494#0: the configuration file /usr/local/etc/nginx/nginx.conf was tested successfully
Опция -c /path/to/config/file указывает, какой конфигурационный файл nginx должен использовать вместо используемого по-умолчанию.
@psman хорошая команда, думаю можно использовать как предпроверку. Спасибо за подсказку). Но думаю изоляционная система на пред-парсе позволит также защитится от бракованных конфигов. Хотя возникает проблема если не устанавливаешь проверку абсолютно всех свойств. Тогда могут возникнуть проблемы если например пользователь захочет использовать сложное регулярное выражение для конфигурации. Тогда парсить становится не маленькой проблемой. Но основную задачу по импорту конфигов я выполнил.