Рейтинг:0

Nginx и настройка пользователя для каждого сервера

флаг cn

На моей локальной машине разработки я хотел бы запустить сервер nginx с несколькими веб-сайтами, каждый из которых работает с другим пользователем, который может использоваться для запуска процесса и/или, по крайней мере, использоваться для олицетворения пользователя, с какими файлами/ папки доступны.

Насколько я понимаю, пользовательские настройки находятся в файле /etc/nginx/nginx.conf и не могут быть вложены в блок сервера конфигурации сайтов.

Можно ли что-то сделать, не создавая файлы докеров или отдельные виртуальные машины?

Рейтинг:1
флаг ru

NGINX не имеет пользовательских сред выполнения для каждого сервера. Если вам это нужно, вам нужны отдельные независимые экземпляры NGINX, работающие с разными конфигурациями и разными сайтами.

Это можно сделать со стандартным NGINX (создание примеров настроек прямо сейчас), но вам нужны разные порты прослушивания и корни конфигурации, и вы не можете использовать одни и те же файлы конфигурации для каждого экземпляра. Вероятно, проще запускать каждый сайт в определенном контейнере Docker, контейнере LXD или виртуальной машине.

Даже в этой настройке с контейнерами пользователи без полномочий root не могут запускать NGINX на порту 80, а многие экземпляры nginx не могут привязываться к 80 и 443, поэтому вам все равно нужен экземпляр NGINX, Apache или haproxy для передачи конкретным бэкендам на основе имени хоста.

флаг ru
К вашему сведению, я собираюсь попытаться создать некоторые из этих конфигураций, чтобы поделиться решением, однако третья прививка / вакцина от COVID сегодня сказывается на мне, так что наберитесь терпения, и я в конечном итоге предоставлю конфигурацию.
Andrea Moro avatar
флаг cn
Не торопитесь и выздоравливайте. Спасибо за поддержку
Andrea Moro avatar
флаг cn
надеюсь, твой джеб был в порядке? Когда у вас будет время, я хотел бы прочитать ваш вклад.
флаг ru
@AndreaMoro Jab + Работа отнимает у меня время, мне нужно еще немного терпения, прежде чем я смогу предоставить какие-либо рабочие примеры.
флаг ru
@AndreaMoro Я работаю над этим прямо сейчас, чтобы посмотреть, смогу ли я заставить эту работу работать, однако я сталкиваюсь с другими проблемами / проблемами с тестированием - нет нужды говорить, что заставить это работать «правильно» нетривиально, поэтому, если я закончу места здесь для моего ответа, как только у меня это заработает, мне придется перенести это в более крупный пост в блоге или что-то подобное на моем собственном сайте, чтобы узнать, как это сделать. Я не сдался, только работа и праздники и прочее, что отвлекает меня/занимает.
флаг ru
@AndreaMoro, так что в репозиториях есть несколько скомпилированных значений по умолчанию с nginx, которые нарушают возможность многопользовательского режима. Я не тестировал версии nginx от nginx upstream, но скоро буду; однако, если у них также есть предварительно скомпилированное значение по умолчанию, это будет проблемой. Ожидать.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.