Установка и настройка nginx без прав root
Инструкция описывает установку и запуск nginx для Primo RPA Orchestrator на Linux от имени непривилегированного пользователя (non-root).
Для управления nginx используется пользовательский unit-файл Primo.Orchestrator.Nginx.user.service и команда systemctl --user.
Перед началом
- Установите nginx из репозитория операционной системы (
aptилиdnf, в зависимости от дистрибутива). Для установки используются бинарный файл/usr/sbin/nginxи файл/etc/nginx/mime.types. - Подготовьте файлы из комплекта поставки Primo RPA Orchestrator:
nginx.linux.conf— конфигурация nginx;Primo.Orchestrator.Nginx.user.service— пользовательский unit-файл;cert1.crtиcert1.rsa— сертификат и закрытый ключ TLS;- дистрибутив веб-интерфейса UI.
- Определите пользователя, от имени которого будут работать службы Оркестратора. Далее он обозначен как
<user>(например,primo-rpa-service). Заменяйте<user>его фактическим именем при выполнении команд.
Шаги 1–3 выполняются с правами администратора (root), шаги 4–5 — после входа в систему под учётной записью <user>.
Важно: не запускайте пользовательскую службу nginx от имени
rootи не выполняйте шаги 4–5 черезsudo. В противном случае файлы могут получить владельцаroot, что препятствует запуску nginx в непривилегированном режиме.
1. Отключение стандартной службы nginx
Остановите стандартную службу nginx и отключите её автоматический запуск:
sudo systemctl disable --now nginxПроверьте состояние службы:
systemctl is-enabled nginx
systemctl is-active nginxОжидаемые значения — disabled и inactive соответственно.
2. Разрешение работы пользовательских служб без входа в систему
Включите linger для пользователя <user>:
sudo loginctl enable-linger <user>Это позволяет пользовательской службе nginx запускаться без интерактивного входа пользователя и продолжать работу после завершения его сеанса.
Проверьте настройку:
loginctl show-user <user> --property=LingerОжидаемый результат — Linger=yes.
3. Создание каталога nginx и назначение владельца
Создайте рабочий каталог nginx:
sudo mkdir -p /opt/Primo/nginxНазначьте его владельцем пользователя, от имени которого запускается nginx:
sudo chown <user>:<user> /opt/Primo/nginxПри запуске пользовательский unit-файл будет создавать в этом каталоге подкаталоги logs и temp.
4. Подготовка конфигурации, сертификата и UI
Войдите в систему непосредственно под пользователем <user> (например, через SSH) и продолжайте работу без sudo.
Создайте каталог для веб-интерфейса:
mkdir -p /opt/Primo/nginx/wwwСкопируйте конфигурационный файл и сертификат из комплекта поставки. Команды выполняются из каталога, в котором находятся эти файлы:
cp nginx.linux.conf /opt/Primo/nginx/nginx.conf
cp cert1.crt /opt/Primo/nginx/cert1.crt
cp cert1.rsa /opt/Primo/nginx/cert1.rsa
chmod 600 /opt/Primo/nginx/cert1.rsaСкопируйте содержимое дистрибутива UI в каталог /opt/Primo/nginx/www.
После копирования файл index.html должен находиться непосредственно в каталоге:
/opt/Primo/nginx/www/index.htmlПримечание: перед запуском проверьте соответствие адресов, портов и путей в
nginx.confвашему окружению. Для запуска без правrootпорт nginx должен быть доступен непривилегированному пользователю. Использование портов ниже1024требует отдельной настройки разрешений операционной системы.
5. Установка и запуск пользовательской службы Primo.Orchestrator.Nginx
Создайте каталог пользовательских unit-файлов:
mkdir -p ~/.config/systemd/userСкопируйте unit-файл:
cp Primo.Orchestrator.Nginx.user.service ~/.config/systemd/user/Primo.Orchestrator.Nginx.serviceПеречитайте конфигурацию пользовательского systemd и включите автоматический запуск:
systemctl --user daemon-reload
systemctl --user enable --now Primo.Orchestrator.NginxПроверьте состояние службы:
systemctl --user status Primo.Orchestrator.NginxОжидаемое состояние — active (running).
Unit-файл запускает nginx с явным указанием каталога /opt/Primo/nginx/ и конфигурационного файла. Перед запуском создаются каталоги logs и temp и проверяется конфигурация nginx. При перезагрузке конфигурации также выполняется проверка; остановка службы производится штатным сигналом SIGQUIT.
6. Проверка работы
Убедитесь, что служба активна и веб-интерфейс Оркестратора доступен по адресу, указанному в конфигурации nginx.
При необходимости проверьте конфигурацию от имени <user> с теми же параметрами запуска, которые использует unit-файл:
/usr/sbin/nginx -p /opt/Primo/nginx/ -c nginx.conf -tЕсли проверка завершилась с ошибкой, исправьте конфигурацию и повторите её перед перезапуском службы.
Особенности запуска без прав root
- Служба nginx работает от непривилегированного пользователя
<user>. - Файлы в
/opt/Primo/nginx, включаяnginx.conf, сертификат и каталогwww, должны быть доступны этому пользователю с необходимыми правами. - Для сохранения работы службы после выхода пользователя необходим
linger. - Управляйте службой командами
systemctl --user, а неsudo systemctlилиsystemctl start nginx.