lock_file
Директива `lock_file` указывает файл, используемый для обеспечения запуска только одного экземпляра NGINX одновременно. — NGINX Core
Описание
Директива `lock_file` в NGINX используется для определения конкретного файла, который выступает в качестве блокировки, чтобы предотвратить одновременный запуск нескольких экземпляров NGINX. При запуске NGINX он пытается создать блокировку с помощью указанного файла. Если этот файл уже существует, что указывает на то, что другой экземпляр NGINX запущен, новый экземпляр не запустится и зафиксирует соответствующее сообщение об ошибке. Этот механизм необходим для сохранения целостности конфигураций и обеспечения того, что одновременно может работать только один главный процесс NGINX. Аргумент, передаваемый в `lock_file`, — это путь к файлу, который можно указать в любом доступном для записи месте. Как правило, это временный каталог или выделенный каталог конфигурации. Тщательно выбирая расположение файла блокировки, системные администраторы могут более эффективно управлять средами с несколькими экземплярами. Использование файла блокировки особенно полезно в конфигурациях, где автоматизированные скрипты или менеджеры сервисов могут непреднамеренно попытаться запустить несколько экземпляров NGINX, что приводит к конфликтам и другим нежелательным состояниям. Важно отметить, что если указанный файл блокировки не может быть создан из-за проблем с правами или ошибок файловой системы, NGINX не запустится и отобразит сообщение об ошибке, связанное с невозможностью создать файл блокировки. Поэтому администраторы должны убедиться, что процесс NGINX имеет соответствующие права для создания и записи в этот файл блокировки.
Пример конфига
lock_file /var/run/nginx.lock;
Убедитесь, что путь к файлу блокировки доступен для записи пользователем NGINX.
Использование одного и того же файла блокировки для нескольких экземпляров NGINX может привести к ошибкам при запуске.
Если файл блокировки не удалён должным образом (из‑за сбоев или некорректного завершения работы), NGINX может не запуститься без ручного вмешательства.