Команды Nginx, которые вы должны знать
Nginx произносится как «engine x» — это бесплатный высокопроизводительный HTTP и обратный прокси-сервер с открытым исходным кодом, отвечающий за загрузку некоторых из крупнейших сайтов в Интернете. Он может использоваться как автономный веб-сервер и как обратный прокси-сервер для Apache и других веб-серверов.
Если вы разработчик или системный администратор, скорее всего, вы регулярно работаете с Nginx.
Мы предполагаем, что вы вошли в систему как пользователь root или пользователь с привилегиями sudo. Команды, используемые в этом gsh, должны работать на любом современном дистрибутиве Linux, таком как Ubuntu 18.04 и CentOS 8 и Debian 10 .
Запуск Nginx
Запуск Nginx довольно прост. Просто запустите следующую команду:
В случае успеха команда не выдает никаких результатов.
Если вы используете дистрибутив Linux без systemd для запуска типа Nginx:
Вместо запуска службы Nginx вручную рекомендуется настроить ее запуск при загрузке системы:
Остановка Nginx
Остановка Nginx быстро завершает работу всех рабочих процессов Nginx, даже если есть открытые соединения.
Чтобы остановить Nginx, выполните одну из следующих команд:
Перезапуск Nginx
Параметр restart — это быстрый способ остановить и запустить сервер Nginx.
Используйте одну из следующих команд для перезапуска Nginx :
Это команда, которую вы, вероятно, будете использовать чаще всего.
Перезагрузка конфигов Nginx
Вам необходимо перезагрузить или перезапустить Nginx всякий раз, когда вы вносите изменения в его конфигурацию.
Команда reload загружает новую конфигурацию, запускает новые рабочие процессы с новой конфигурацией и корректно завершает работу старых рабочих процессов.
Чтобы перезагрузить Nginx, используйте одну из следующих команд:
Тестирование конфигурации Nginx
Используйте следующую команду для проверки конфигурации Nginx на наличие любых синтаксических или системных ошибок:
Вывод будет выглядеть так:
Если есть какие-либо ошибки, команда печатает подробное сообщение.
Просмотр статуса Nginx
Чтобы проверить состояние службы Nginx, используйте следующую команду:
Вывод будет выглядеть примерно так:
Проверка версии Nginx
Иногда вам может понадобиться узнать версию вашего Nginx, чтобы вы могли отладить проблему или определить, доступна ли определенная функция.
Вы можете проверить свою версию Nginx, запустив:
-V — Опция отображает версию Nginx вместе с возможностью конфигурирования.
Вывод
В этом руководстве мы показали вам некоторые из наиболее важных команд Nginx. Если вы хотите узнать больше о параметрах командной строки Nginx, посетите документацию Nginx .
Sorry, you have been blocked
This website is using a security service to protect itself from online attacks. The action you just performed triggered the security solution. There are several actions that could trigger this block including submitting a certain word or phrase, a SQL command or malformed data.
What can I do to resolve this?
You can email the site owner to let them know you were blocked. Please include what you were doing when this page came up and the Cloudflare Ray ID found at the bottom of this page.
Cloudflare Ray ID: 71a99b2dbcf39205 • Your IP : 82.102.23.104 • Performance & security by Cloudflare
Как правильно остановить nginx?
Такой вопрос: У меня есть несколько nginx 1.2.3, соединённых последовательно: NG1 -> NG2 -> WEB-APPS.
Схема включения — древовидная: NG2 — N штук. WEB-APPS — N*M штук.
Я хочу перезагрузить часть своих веб приложений прозрачно для пользователей. Как мне правильно сделать?
Подозреваю, что достаточно на время перезагрузки приложений выключить интстанс NG2, который их обслуживает. Но тут возникает ряд вопросов:
Поймёт ли NG1 то, что часть инстансов NG2 выключена и перебросит ли он новые запросы на работающие инстансы?
Как мне выключить инстанс NG2 так, чтобы существующие запросы не были оборваны? Т.е. новые запросы он обрабатывать не должен, но запросы, которые он уже пробросил он должен держать, пока мои сервера не отдадут весь контент.
Читал документацию, но она мне показалась противоречивой. Например я не понял, достугну ли я цели, если сделаю так?

может с такой сложной схемой имеет смысл посмотреть на haproxy?
а по нжинксу, если используется ip_hash то можно пометить ноду как down и после ее ребутнуть, в другом случае. разве что вывести ноду из апстрима и после пустить ее в ребут, хотя к чему это приведет хз
1) закомментировать в конфиге NG1 одну или несколько NG2
2) kill -HUP <NG1 pid> // NG1 перечитает свой конфиг и больше не будет обращаться к закомментированным NG2
3) перезапустить WEB-APPs привязанные к неактивным NG2
4) раскомментировать отключенные NG2 в конфге NG1 и опять сделать kill -HUP.

1) закомментировать в конфиге NG1 одну или несколько NG2
и что нжинкс будет делать с текущими соединениями? 503? или корректно отбалансирует на другую ноду?

и что нжинкс будет делать с текущими соединениями?
продолжит их обслуживать, но новые запросы отправляться не будут.

правда, не понятно что будет с теми у кого persistent connection. По-моему, пока все старые клиенты не отвалятся старые процессы не отомрут. А это может быть долго.
Вырубай весь сервер сразу.
закомментировать в конфиге NG1 одну или несколько NG2
Пробовал. Но то ли лыжи не едут, то ли ещё что, но даже после service nginx reload NG1 продолжал перебрасывать соединения на закоментаренные NG2.
Сделал я так: останавливаю NG2 командой: nginx -s quit Жду, пока не завершатся все его инстансы. Похоже (?) из коробки NG1 понимает, что какие-то инстансы NG2 отвалились и не перебрасывает на них запросы. В логах 404 ошибок нет. Перезагружаю всё, что мне нужно. Запускаю NG2.