Skip to Content

Установка и настройка nginx без прав root

Инструкция описывает установку и запуск nginx для Primo RPA Orchestrator на Linux от имени непривилегированного пользователя (non-root).

Для управления nginx используется пользовательский unit-файл Primo.Orchestrator.Nginx.user.service и команда systemctl --user.

Перед началом

  1. Установите nginx из репозитория операционной системы (apt или dnf, в зависимости от дистрибутива). Для установки используются бинарный файл /usr/sbin/nginx и файл /etc/nginx/mime.types.
  2. Подготовьте файлы из комплекта поставки Primo RPA Orchestrator:
    • nginx.linux.conf — конфигурация nginx;
    • Primo.Orchestrator.Nginx.user.service — пользовательский unit-файл;
    • cert1.crt и cert1.rsa — сертификат и закрытый ключ TLS;
    • дистрибутив веб-интерфейса UI.
  3. Определите пользователя, от имени которого будут работать службы Оркестратора. Далее он обозначен как <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.