Restart apache: Перезапуск Apache Ubuntu | Losst
Перезапуск Apache Ubuntu | Losst
Apache — это один из самых популярных веб-серверов, которые используются для размещения сайтов. Наверное, он даже популярнее, чем Nginx, поскольку его намного проще настроить и есть поддержка изменения конфигурации для каждой отдельной папки с помощью файлов htaccess, причем сразу же, на лету. Но когда вы поменяли глобальные настройки Apache или изменили параметры PHP, Apache необходимо перезагрузить.
В этой небольшой статье мы рассмотрим какими способами выполняется перезапуск apache ubuntu и как это делать более правильно.
Содержание статьи:
Перезапуск Apache в Ubuntu
Как и в большинстве других дистрибутивов, в Ubuntu используется система управления службами systemd. Именно ее мы и будем использовать для решения наших задач. Сначала давайте посмотрим запущен ли Apache и не выдает ли он каких ошибок:
sudo systemctl status apache2
В отличие от CentOS и других RedHat дистрибутивов, здесь Apache называется не httpd, а apache2. Поэтому если вы попытаетесь делать что-то с httpd, то у вас ничего не выйдет.
У нас есть два различных пути перезапуска Apache и несколько команд для выполнения нужных операций:
- Вы можете полностью перезапустить Apache, программа закроется и откроется заново, собьется вся статистика и оборвутся соединения. Некоторое время, пока сервис будет перезагружаться, пользователи не смогут получить к нему доступ. restart (stop start);
- Можно инициировать обновление конфигурационных файлов. В таком случае программа рекомендует своим дочерним процессам завершиться, когда они закончат обработку соединений и обновит свою конфигурацию без фактического перезапуска. Такой способ позволяет минимизировать потери пользователей. reload, graceful.
Для перезагрузки можно использовать три команды, это systemd, service и apachectl. Разработчики Apache рекомендуют использовать apachectl, но все другие команды просто являются оболочками для этой. Сначала systemctl:
sudo systemctl restart apache2
sudo systemctl reload apache2
Если вы хотите использовать service, то можно не писать sudo, тогда система спросит вас пароль сама:
service restart apache2
service reload apache2
Последний способ перезагрузки Apache — использовать apachectl:
apachectl -k restart
apachectl -k graceful
В каждой паре первая команда означает жесткую перезагрузку, а вторая — обновление конфигурации без перезагрузки сервиса. Вместо apachectl еще можно использовать ее алиас — apache2ctl. После перезагрузки посмотрите все ли правильно работает:
sudo systemctl status apache2
Более подробную информацию можно увидеть выполнив:
apachectl status
Если вас интересует ответ на вопрос, как запустить apache, то используйте команду start:
$ sudo systemctl start apache2
Перезапуск Apache в панели управления
Если вы используете панель управления сервером через веб-интерфейс, например, VestaCP, это сделать достаточно просто. Сначала откройте вкладку «Server»:
Затем просто найдите в списке Apache и нажмите «Restart»:
Выводы
В этой статье мы рассмотрели как выполняется перезапуск apache ubuntu, несмотря на то, что это очень просто и вряд ли может вызвать проблемы, есть несколько способов, и теперь вы их знаете. Если у вас остались вопросы, спрашивайте в комментариях.
Оцените статью:
Загрузка…
Как запустить, остановить или перезапустить Apache
Apache – это кроссплатформенный HTTP-сервер с открытым исходным кодом. Он поставляется с мощными функциями и может быть расширен с помощью различных модулей.
Если вы разработчик или системный администратор, есть вероятность, что вы имеете дело с Apache на регулярной основе.
Запуск, остановка и перезапуск/перезагрузка являются наиболее распространенными задачами при работе с веб-сервером Apache. Команды для управления службой Apache различны в разных дистрибутивах Linux.
Большинство последних дистрибутивов Linux используют SystemD в качестве системы инициализации по умолчанию и менеджера сервисов. Старые дистрибутивы основаны на SysVinit и используют сценарии инициализации для управления сервисами. Еще одно отличие – название сервиса. В Ubuntu и Debian служба Apache называется apache2, а в системах на базе Red Hat, таких как CentOS, имя службы httpd.
В этой статье мы объясним, как запускать, останавливать и перезапускать Apache в самых популярных дистрибутивах Linux.
Прежде чем вы начнете
В инструкциях предполагается, что вы вошли в систему как пользователь root или пользователь с привилегиями sudo.
И служебные модули SystemD, и сценарий SysVinit принимают следующие аргументы для управления службой Apache:
- start: Запускает службу Apache.
- stop: Завершает службу Apache.
- restart: Останавливается, а затем запускается служба Apache.
- reload: Перезапускает службу Apache. При перезагрузке основной процесс Apache завершает работу дочерних процессов, загружает новую конфигурацию и запускает новые дочерние процессы.
- status: Показывает статус сервиса.
Запустите, остановите и перезапустите Apache в Ubuntu и Debian
SystemD – это менеджер систем и сервисов для последних версий Ubuntu ( 18.04 , 16.04) и Debian ( 10 , 9 ).
Выполните следующую команду, чтобы запустить службу Apache:
sudo systemctl start apache2
Выполните следующую команду, чтобы остановить службу Apache:
sudo systemctl stop apache2
Всякий раз, когда вы вносите изменения в конфигурацию Apache, вам необходимо перезапускать процессы сервера. Выполните следующую команду, чтобы перезапустить службу Apache:
sudo systemctl restart apache2
Более старые (EOLed) версии Ubuntu или Debian используют сценарии init.d для запуска, остановки и перезапуска демона Apache:
sudo service apache2 start sudo service apache2 stop sudo service apache2 restart
Запустите, остановите и перезапустите Apache на RHEL/CentOS
Systemd является менеджером системы и сервиса для RHEL/CentOS 7 и 8.
Запустите сервис Apache:
sudo systemctl start httpd
Остановите службу Apache:
sudo systemctl stop httpd
Перезапустите сервис Apache:
sudo systemctl restart httpd
Если у вас CentOS 6 (или более ранняя версия), используйте следующие команды для запуска, остановки и перезапуска демона Apache:
sudo service httpd start sudo service httpd stop sudo service httpd restart
Заключение
В этой статье мы показали, как запускать, останавливать и перезапускать веб-сервер Apache в различных системах Linux.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь комментировать ниже.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Как перезапустить Apache в Ubuntu
Несмотря на всплеск NGINX, Apache по-прежнему является одним из наиболее часто используемых серверных программ с открытым исходным кодом. Но эта статья не об обсуждении Apache против NGINX. Это лишь краткие советы, где мы покажем вам различные способы перезапуска сервера Apache в Ubuntu или других дистрибутивах Linux.
Перезапуск Apache в Ubuntu Linux
Как и во многих других сервисах, есть несколько способов перезапустить Apache. Поскольку версии Ubuntu 16.04, 18.04 и выше используют systemd, вы можете использовать команды systemd для управления любым сервисом, включая Apache. На самом деле, systemd – наш рекомендуемый метод.
Но подождите! Вам действительно нужно перезапустить Apache?
Почему вы хотите перезагрузить сервер Apache? Возможно, вы внесли некоторые изменения в конфигурацию и хотите, чтобы эти изменения вступили в силу. Если это так, вам не нужно перезапускать Apache.
Перезапуск Apache означает, что сервер Apache выключится, а затем запустится снова. Если вы находитесь на рабочем сервере, это приведет к простою всех служб, использующих сервер Apache. Вы же не хотите этого делать?
Apache поддерживает перезагрузку конфигурации, что означает, что вы можете перезагрузить конфигурацию, не выключая сервер. Таким образом, ваш действующий сервер не будет страдать от простоев.
sudo systemctl reload apache2
Если вы не хотите использовать команду systemd, есть альтернативная команда для перезагрузки сервера Apache:
sudo service apache2 reload
Хорошо! Вы действительно хотите перезапустить Apache
Мы понимаем, что у вас может быть причина, по которой вы перезагружаете Apache, не справитесь с этой задачей, и вы должны перезапустить сервер Apache. Если это так, вы можете использовать команду systemd:
sudo systemctl restart apache2
В качестве альтернативы вы также можете использовать эту команду:
sudo service apache2 restart
Бонус Совет: проверьте состояние сервера Apache
Поскольку вы имеете дело с перезапуском и перезагрузкой службы, было бы неплохо проверить ее состояние. Вы можете проверить состояние сервера Apache, используя systemd:
systemctl status apache2.service
Не-systemd команда для проверки состояния сервера Apache:
service apache2 status
Надеюсь, вам понравился этот быстрый совет о перезапуске сервера Apache в Ubuntu и других дистрибутивах Linux. Если у вас есть вопросы или предложения, дайте нам знать в разделе комментариев.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
restart и команды start и stop. Как перезагрузить сервер
Казалось-бы, такая простая задача, может поставить некоторых новых пользователей Linux в тупик. Если вы задаётесь вопросом, как перегрузить apache в linux, то эта статья для вас.
Apache – в основном используется для обслуживания статических и динамических страниц в сети интернет. Многие веб-приложения разработаны с учетом среды и функций, предоставляемых Apache. Запустить или перезапустить web-сервер Apache можно используя следующие команды…
Во-первых, войдите на свой сервер используя любой ssh клиент:
После входа на сервер, используйте следующие команды, в зависимости от системы сервера.
Команды используемые на Debian/Ubuntu Linux подобных системах
Используйте эти команды на последних версиях Debian Linux не ниже 8.x+ версии или Ubuntu Linux не ниже 15.04+версии:
## Старт сервера Apache2##
systemctl start apache2.service
## Остановка сервера Apache2 ##
systemctl stop apache2.service
## Перезапуск сервера Apache2 ##
systemctl restart apache2.service
| ## Старт сервера Apache2## systemctl start apache2.service ## Остановка сервера Apache2 ## systemctl stop apache2.service ## Перезапуск сервера Apache2 ## systemctl restart apache2.service |
Команды используемые на CentOS/RHEL (Red Hat) Linux подобных системах
## Старт сервера Apache2 ##
systemctl start httpd.service
## Остановка сервера Apache2 ##
systemctl stop httpd.service
## Перезапуск сервера Apache2 ##
systemctl restart httpd.service
| ## Старт сервера Apache2 ## systemctl start httpd.service ## Остановка сервера Apache2 ## systemctl stop httpd.service ## Перезапуск сервера Apache2 ## systemctl restart httpd.service |
Основной метод для управления Стартом/Перезагрузкой/Остановкой web-сервера Apache на Linux/Unix системах
Используется следующий синтаксис команд:
## Остановка сервера ##
apachectl -k stop
## Перезагрузка сервера ##
apachectl -k restart
## Старт сервера ##
apachectl -f /path/to/your/httpd.conf
apachectl -f /usr/local/apache2/conf/httpd.conf
| ## Остановка сервера ## apachectl -k stop ## Перезагрузка сервера ## apachectl -k restart ## Старт сервера ## apachectl -f /path/to/your/httpd.conf apachectl -f /usr/local/apache2/conf/httpd.conf |
Как мы все знаем, Apache — это бесплатный кросс-платформенный веб-сервер с открытым исходным кодом, который используется как для статических, так и для динамических веб-страниц.
В этой статье мы остановимся на том, как вы можете запускать и перезапускать веб-сервер Apache в системах Linux с помощью команды apache2.
На Ubuntu/Debian Linux
Давайте посмотрим, как мы можем запустить, остановить и перезапустить веб-сервер apache2 в версиях Ubuntu и Debian
Apache2 Restart/Start/Stop/
Для пользователей Ubuntu и Debian Systemd — Ubuntu 18.04,16.04 и Debian 9.x используются команды ниже:
Запустите Apache2, запустив
# systemctl start apache2
Остановите Apache2, запустив
# systemctl stop apache2
Перезапустите Apache2, запустив
# systemctl restart apache2
Проверка состояния Apache2:
# systemctl status apache2
Пример вывода:
● apache2.service - LSB: Apache2 web server Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled) Drop-In: /lib/systemd/system/apache2.service.d └─apache2-systemd.conf Active: active (running) since Tue 2018-09-11 12:49:03 UTC; 26s ago Docs: man:systemd-sysv-generator(8) CGroup: /system.slice/apache2.service ├─28788 /usr/sbin/apache2 -k start ├─28791 /usr/sbin/apache2 -k start └─28792 /usr/sbin/apache2 -k start
Чтобы проверить, действительно ли веб-сервер работает, откройте свой браузер и введите IP-адрес своего сервера
http://server-ip-address/
Вы должны иметь возможность просматривать страницу Apache по умолчанию, как показано ниже:
Для более старых версий Ubuntu -14.10 и старше, и Debian
Запустите службу Apache2, запустив
# sudo service apache2 start или # /etc/init.d/apache2 start или # sudo /etc/init.d/apache2 start
Остановите службу Apache2, запустив
# sudo service apache2 stop или # /etc/init.d/ apache2 stop
Пример вывода:
[ ok ] Restarting apache2 (via systemctl): apache2.service.
Проверка состояния Apache2
# sudo service apache2 status или # /etc/init.d/ apache2 status или # sudo /etc/init.d/ apache2 status
Пример вывода:
● apache2.service - LSB: Apache2 web server Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled) Drop-In: /lib/systemd/system/apache2.service.d └─apache2-systemd.conf Active: active (running) since Tue 2018-09-11 12:49:03 UTC; 26s ago Docs: man:systemd-sysv-generator(8) CGroup: /system.slice/apache2.service ├─28788 /usr/sbin/apache2 -k start ├─28791 /usr/sbin/apache2 -k start └─28792 /usr/sbin/apache2 -k start
На RHEL/CentOS
Apache2 Restart/Start/Stop
Для более новых версий RHEL / CentOS (версии 7.x и выше)
Запустите Apache2, запустив
# systemctl start httpd или # systemctl start httpd.service
Остановите Apache2, запустив
# systemctl stop httpd или # systemctl stop httpd.service
Перезапустите Apache2, запустив
# systemctl restart httpd или # systemctl restart httpd.service
Чтобы проверить статус Apache2
# systemctl status httpd
Пример вывода
● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor prese t: disabled) Active: active (running) since Tue 2018-09-11 17:33:28 UTC; 6min ago Docs: man:httpd(8) man:apachectl(8) Main PID: 1450 (httpd) Status: "Total requests: 0; Current requests/sec: 0; Current traffic: 0 B/s ec" CGroup: /system.slice/httpd.service ├─1450 /usr/sbin/httpd -DFOREGROUND ├─1451 /usr/sbin/httpd -DFOREGROUND ├─1452 /usr/sbin/httpd -DFOREGROUND ├─1453 /usr/sbin/httpd -DFOREGROUND ├─1454 /usr/sbin/httpd -DFOREGROUND └─1455 /usr/sbin/httpd -DFOREGROUND Sep 11 17:33:28 ip-172-31-16-67.us-east-2.compute.internal systemd[1]: Starti... Sep 11 17:33:28 ip-172-31-16-67.us-east-2.compute.internal systemd[1]: Starte... Hint: Some lines were ellipsized, use -l to show in full.
Для более старых версий (CentOS / RHEL (Red Hat) Linux версии 4.x / 5.x / 6.x)
Запустите Apache2, запустив
# service httpd start
Остановите Apache2, запустив
# service httpd stop
Перезапустите Apache2, запустив
# service httpd restart
Чтобы проверить статус веб-сервера Apache
# service httpd status
Пример вывода:
● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled) Active: active (running) since Tue 2018-09-11 19:46:30 UTC; 1 weeks 1 days ago Docs: man:httpd(8) man:apachectl(8) Process: 9118 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=0/SUCCESS) Process: 22055 ExecReload=/usr/sbin/httpd $OPTIONS -k graceful (code=exited, status=0/SUCCESS) Main PID: 9122 (httpd) Status: "Total requests: 0; Current requests/sec: 0; Current traffic: 0 B/sec" CGroup: /system.slice/httpd.service ├─ 9122 /usr/sbin/httpd -DFOREGROUND ├─22058 /usr/sbin/httpd -DFOREGROUND ├─22059 /usr/sbin/httpd -DFOREGROUND ├─22060 /usr/sbin/httpd -DFOREGROUND ├─22061 /usr/sbin/httpd -DFOREGROUND ├─22062 /usr/sbin/httpd -DFOREGROUND ├─22149 /usr/sbin/httpd -DFOREGROUND └─27556 /usr/sbin/httpd -DFOREGROUND
Как и в системах Debian, вы можете проверить, работает ли веб-сервер, открыв браузер и набрав IP-адрес вашего сервера
В Fedora
Apache2 Перезагрузка / Запуск / остановка
На Fedora 22. и более поздних
Запуск вебсервера Apache:
# systemctl start httpd или # apachectl start
Остановите Apache2, запустив
# systemctl stop httpd или # apachectl -k stop
Чтобы перезапустить Apache2
apachectl -k restart
Чтобы проверить статус Apache2
systemctl status httpd
Чтобы подтвердить, что сервер запущен и поднят в веб-браузере, введите IP-адрес сервера
http://server-ip-address/
Поделитесь статьей:
Остановка и перезапуск HTTP-сервера Apache
См. Также
Чтобы остановить или перезапустить HTTP-сервер Apache, необходимо отправить сигнал на
запущенные процессы httpd
. Есть два способа
отправлять сигналы. Во-первых, вы можете использовать unix kill
команда для прямой отправки сигналов процессам. Вы будете
обратите внимание на многие исполняемые файлы httpd
, запущенные в вашей системе,
но вы не должны посылать сигналы никому из них, кроме родителя,
чей pid находится в PidFile
.То есть вы
никогда не нужно отправлять сигналы какому-либо процессу, кроме
родитель. Есть четыре сигнала, которые вы можете отправить родителю:
СРОК
,
USR1
, г.
HUP
и
ЛЕБЕДКА
, которая
будет описано чуть позже.
Чтобы отправить сигнал родителю, вы должны выполнить команду
например:
kill -TERM `cat / usr / local / apache2 / logs / httpd.pid`
Второй метод сигнализации httpd
процессов
использовать параметры командной строки -k
: stop
,
перезапуск
, Graceful
и Graceful-Stop
,
как описано ниже.Это аргументы двоичного файла httpd
, но мы рекомендуем
вы отправляете их с помощью управляющего скрипта apachectl
, который
передаст их на httpd
.
После того, как вы отправили сигнал httpd
, вы можете прочитать о
его прогресс в выдаче:
хвост -f / usr / local / apache2 / журналы / error_log
Измените эти примеры, чтобы они соответствовали настройкам ServerRoot
и PidFile
.
- Сигнал: TERM
-
apachectl -k stop
Отправка сигнала TERM
или stop
на
родитель заставляет его немедленно попытаться убить все его
дети. Завершение уничтожения может занять несколько секунд.
его дети. Затем сам родитель выходит. Любые запросы в
прогресс прекращается, и дальнейшие запросы не обслуживаются.
- Сигнал: USR1
-
apachectl -k изящный
Сигнал USR1
или Graceful
вызывает
родительский процесс на советует дочерним процессам выйти после
их текущий запрос (или немедленно выйти, если они не
обслуживает все).Родитель перечитывает свои файлы конфигурации и
повторно открывает свои файлы журнала. Когда каждый ребенок умирает, родитель заменяет
это с ребенком из нового поколения г.
конфигурация, которая немедленно начинает обслуживать новые запросы.
Этот кодекс разработан, чтобы всегда уважать контроль процесса
директива MPM, поэтому количество процессов и потоков
доступные для обслуживания клиентов, будут поддерживаться в соответствующих
значения во время процесса перезапуска.Кроме того, он уважает
StartServers
в
следующим образом: если через одну секунду хотя бы StartServers
новых дочерних серверов не
было создано, затем создайте достаточно, чтобы устранить провисание. Следовательно
код пытается поддерживать количество дочерних элементов, подходящее для
текущую нагрузку на сервер и уважайте ваши пожелания
StartServers
параметр.
Пользователи mod_status
заметит, что статистика сервера , а не
устанавливается в ноль при отправке USR1
.Код был
написано, чтобы минимизировать время, в течение которого сервер не может
для обслуживания новых запросов (они будут поставлены в очередь операционными
систему, чтобы они ни в коем случае не потерялись) и уважать ваши
параметры настройки. Для этого необходимо, чтобы
Табло используется для отслеживания всех детей
поколения.
Модуль состояния также будет использовать G
для индикации
те дети, которые все еще обслуживают запросы, запущенные до
был выполнен плавный перезапуск.
В настоящее время нет возможности для сценария ротации журналов с использованием
USR1
, чтобы точно знать, что все дети пишут
журнал предварительного перезапуска закончился. Мы предлагаем вам использовать
подходящая задержка после отправки сигнала USR1
прежде чем делать что-либо со старым журналом. Например, если большинство
на выполнение ваших обращений у пользователей на
ссылки с низкой пропускной способностью, тогда вы можете подождать 15 минут, прежде чем делать
что-нибудь со старым журналом.
При перезапуске сначала выполняется проверка синтаксиса, чтобы
убедитесь, что в файлах конфигурации нет ошибок.
Если в вашем файле конфигурации есть ошибки, вы получите
сообщение об этой синтаксической ошибке, и сервер откажется
перезапуск. Это позволяет избежать ситуации, когда сервер останавливается, а затем
невозможно перезапустить, в результате чего вы останетесь с неработающим сервером
Это все равно не будет
гарантировать, что сервер перезапустится правильно.Чтобы проверить
семантика файлов конфигурации, а также синтаксис, вы
можно попробовать запустить httpd
как пользователь без полномочий root. Если там
нет ошибок, он попытается открыть свои сокеты и журналы и потерпит неудачу
потому что это не root (или потому что текущий
httpd
уже привязал эти порты). Если не получится
по любой другой причине это, вероятно, ошибка файла конфигурации и ошибка
следует исправить до выполнения плавного перезапуска.
- Сигнал: HUP
-
apachectl -k перезапуск
Отправка сигнала HUP
или restart
на
родитель заставляет его убивать своих детей, как в
TERM
, но родитель не выходит.Он перечитывает свое
файлы конфигурации и повторно открывает все файлы журналов. Затем он порождает
новый набор детей и продолжает подавать хиты.
Пользователи mod_status
заметит, что статистика сервера обнулена, когда
HUP
отправлено.
Как и при плавном перезапуске, проверка синтаксиса выполняется перед
попытка перезапуска. Если в вашем файле конфигурации есть ошибки,
перезагрузка не будет предпринята, и вы получите уведомление о
синтаксическая ошибка (и).
- Сигнал: WINCH
-
apachectl -k изящная остановка
Сигнал WINCH
или graceful-stop
вызывает
родительский процесс на советует дочерним процессам выйти после
их текущий запрос (или немедленно выйти, если они не
обслуживает все). Затем родительский элемент удалит свой PidFile
и перестанет слушать
все порты. Родитель будет продолжать работать и следить за детьми
которые обрабатывают запросы.Как только все дети доработают
и завершился, или время ожидания, указанное в GracefulShutdownTimeout
, было
достигнуто, родитель также выйдет. Если время ожидания истекло,
всем оставшимся потомкам будет отправлен сигнал TERM
заставить их выйти.
Сигнал TERM
немедленно завершит
родительский процесс и все дочерние элементы в «изящном» состоянии. Однако
поскольку PidFile
будет
были удалены, вы не сможете использовать
apachectl
или httpd
для отправки этого сигнала.
Сигнал graceful-stop
позволяет запускать несколько
идентично настроенные экземпляры httpd
на
то же время. Это мощная функция при выполнении изящных
обновления httpd, однако это также может вызвать взаимоблокировки и гонку
условия с некоторыми конфигурациями.
Были приняты меры к тому, чтобы файлы на диске, такие как файлы блокировки
( Mutex
) и файлы сокетов Unix
( ScriptSock
) содержат сервер
PID и должны сосуществовать без проблем.Однако если конфигурация
директива, сторонний модуль или постоянный CGI использует любой другой на диске
файлы блокировки или состояния, следует позаботиться о том, чтобы
экземпляры httpd
не уничтожают файлы друг друга.
Вам также следует опасаться других потенциальных состояний гонки, таких как
с использованием rotatelogs
-канального ведения журнала. Многократный бег
экземпляров журналов поворота
, пытающихся повернуть то же самое
файлы журнала одновременно могут уничтожить файлы журнала друг друга.
.
apache — перезапустить apache2 через PHP скрипт
Переполнение стека
- Около
Продукты
- Для команд
Переполнение стека
Общественные вопросы и ответыПереполнение стека для команд
Где разработчики и технологи делятся частными знаниями с коллегамиВакансии
Программирование и связанные с ним технические возможности карьерного ростаТалант
Нанимайте технических специалистов и создавайте свой бренд работодателяРеклама
Обратитесь к разработчикам и технологам со всего мира- О компании
Загрузка…
.
Перезапуск приложений — Apache — Пассажирская библиотека
Когда вы развернули приложение на Passenger, вам может понадобиться время от времени перезапускать его. Например, когда вы развернули новую версию своего приложения, новая версия не активируется, пока вы не перезапустите приложение. Или, если вы изменили файл конфигурации, принадлежащий приложению, приложение может не активировать изменения конфигурации, пока вы не перезапустите его.
В этом руководстве объясняется, как перезапускать приложения на Passenger.
Содержание
Зачем нужны перезагрузки
Passenger не запускает приложение с нуля при каждом запросе. Вместо этого Passenger запускает один или несколько экземпляров приложения (процессы приложения) и сохраняет их для обработки множества запросов. Поскольку эти процессы сохраняются, обновления приложения не вступают в силу, пока приложение не будет перезапущено.
Методы перезапуска приложения
Passenger предлагает несколько способов перезапуска приложения, работающего в Passenger.
приложение-перезагрузка конфигурации пассажира
Предпочтительный метод перезапуска приложения — это средство пассажира-config restart-app
. Этот инструмент может работать в интерактивном или неинтерактивном режиме.
Интерактивный вызов
Если вы вызываете пассажир-config restart-app
без аргументов, оно спросит вас, какое приложение вы хотите перезапустить. Вот пример:
$ приложение для перезагрузки конфигурации пассажира Пожалуйста, выберите приложение для перезапуска.Совет: повторно запустите эту команду с --help, чтобы узнать, как ее автоматизировать. Если меню отображается неправильно, нажмите '!' ‣ / Пользователи / phusion / testapp / public (разработка) Отмена
Используйте клавиши со стрелками вверх и вниз для перемещения по меню. Нажмите Enter, и это перезапустит выбранное приложение.
Неинтерактивный вызов
Вы также можете указать пассажиру-config restart-app
перезапустить конкретное приложение вместо запроса меню. Команда принимает префикс пути приложения в качестве первого аргумента.Если он задан, он перезапустит все приложения, путь которых соответствует заданному префиксу.
Например, предположим, что ваше приложение находится в / Users / phusion / testapp
. Вы должны сказать Пассажиру перезапустить приложение следующим образом:
$ пассажира-config-перезапуск-приложение / Пользователи / phusion / testapp Перезапуск / Пользователи / phusion / testapp / public (разработка)
Есть еще более короткий путь. Вы можете указать Passenger перезапустить все приложения, которые он обслуживает в данный момент, указав /
в качестве аргумента.Это связано с тем, что пути всех приложений начинаются с /
.
$ пассажира-config restart-app / Перезапуск / Пользователи / phusion / testapp / public (разработка)
Безопасность
В версиях Passenger до 5.0.10 приложение для перезапуска пассажира-config
должно запускаться от имени того же пользователя, от имени которого запущен основной процесс Passenger. Поскольку это обычно root, пассажира-config restart-app
обычно нужно запускать с sudo
(или rvmsudo
, если вы используете RVM).
Начиная с 5.0.10, можно запускать приложение для перезапуска конфигурации пассажира
без sudo. В этом случае вы сможете перезапустить только те приложения, которые работают от имени того же пользователя, что и пользователь, вызвавший пассажира-config
.
Дополнительная информация
Средство перезапуска приложения для загрузки конфигурации пассажира
является самодокументированным. Чтобы узнать больше об этом, выполните следующее:
приложение-перезагрузка конфигурации пассажира --help
перезапуск.txt
Другой способ перезапустить приложение — прикоснуться к файлу restart.txt
в подкаталоге tmp
каталога приложения. Как только Пассажир заметил, что временная метка файла изменилась, он перезапустит приложение.
Многим этот механизм может показаться немного странным, но он был введен не просто так. Passenger был изначально разработан в эпоху, когда был популярен виртуальный хостинг. В то время самые популярные общие хостеры предоставляли только FTP-доступ, но не SSH.Невозможно было запустить такую команду, как cabin-config restart-app
, но даже с помощью FTP можно было изменить временную метку файла. Таким образом, restart.txt был введен как способ.
В отличие от приложения-клиента-config restart-app, касание файла restart.txt не приводит к немедленному перезапуску приложения. Пассажир проверяет изменение метки времени при каждом запросе, но с учетом ограничения производительности по соображениям производительности.
Перезапуск Apache
Вы можете перезапустить все приложения, которые обслуживает Passenger, перезапустив Apache.
Иногда может потребоваться перезапустить Apache без перезапуска всех приложений, обслуживаемых Passenger, например чтобы обновить конфигурацию. Если да, попробуйте режим «Летающий пассажир».
Блокирующий перезапуск против перезапуска с нулевым временем работы (скользящий перезапуск)
Если вы используете приложение-пассажира-config restart-app или restart.txt или перезапускаете приложение, тогда Passenger никогда не отбрасывает запросы во время перезапуска.
Однако Пассажир по умолчанию выполняет перезапуск , блокирующий .Passenger завершит все процессы для этого приложения и создаст новое. Создание нового процесса приложения может занять некоторое время (может достигать 30 секунд для приложения Rails среднего размера на загруженном сервере). Любые запросы, поступающие в течение этого времени, не будут отброшены, но будут заблокированы до тех пор, пока не будет запущен этот первый процесс приложения. Посетители могут воспринимать это как «простои».
В версии Passenger для предприятий предусмотрена функция непрерывного перезапуска, которая решает эту проблему.При включенном скользящем перезапуске Passenger Enterprise перезапускает приложение в фоновом режиме, чтобы посетители никогда не испытывали никаких задержек и никогда не испытывали ухудшения работы пользователя. Дополнительные сведения см. В разделе «Обновления и перезапуски приложений без простоев».
Устойчивость к ошибкам развертывания
С перезапусками с нулевым временем простоя тесно связана функция Enterprise Устойчивость к ошибкам развертывания. Предположим, вы обновили свое приложение и подали команду на его перезапуск, но обновление приложения содержит ошибку (например.г. синтаксическая ошибка или ошибка конфигурации базы данных), которая не позволяет Passenger успешно запустить процесс. Пассажир обычно отображает сообщение об ошибке посетителю в ответ на это.
Включив защиту от ошибок развертывания, Passenger Enterprise «замораживает» список процессов приложения. Существующие процессы приложения (принадлежащие предыдущей версии) будут сохранены для обслуживания запросов. Ошибка регистрируется, но посетители не видят сообщений об ошибках. Passenger сохраняет старые процессы, пока администратор не примет меры.Таким образом, посетители минимально пострадают от ошибок развертывания.
Дополнительные сведения об этой функции см. В руководстве «Устойчивость к ошибкам развертывания».
Перезапуск приложений против изменений конфигурации Apache
Перезапуск приложения не активирует никаких изменений конфигурации Apache. Вам необходимо перезапустить Apache, чтобы изменения конфигурации Apache вступили в силу.
.
Перезапустите Apache без перезагрузки сервера CentOS Linux
Ясный путь для запуска Apache
. Если вы поддерживаете скромный веб-сайт, одним из наиболее важных приемов, которые вы узнаете, является перезапуск веб-сервера Apache httpd. Обычно это используется в следующих сценариях:
- При обновлении файла конфигурации веб-сервера.
- Когда httpd становится безнадежно сбитым с толку и не отвечает.
- Для изолированного тестирования других служб.
Уловка заключается в перезапуске Apache без перезагрузки размещенного сервера CentOS Linux. Для начала вам понадобится выделенный или размещенный виртуальный частный сервер (VPS). Оттуда вы можете использовать служебную команду. Читайте подробности.
Почему служебная команда лучше
Хотя существует по крайней мере полдюжины различных способов перезапустить httpd, я предлагаю использовать служебную команду. Главное преимущество, когда дело доходит до сервера CentOS: служба продолжит работать на вас, если вы перейдете на более специализированный http-сервер, такой как nginx.
Интересно, что в документации Apache httpd используется команда apachectl. Однако apachectl также сбивает с толку некоторых системных администраторов, потому что расположение исполняемого файла более изменчиво, чем / sbin / service.
В документации CentOS в качестве хороших вариантов предлагаются как apachectl, так и сервис.
Как перезапустить Apache на выделенном или размещенном VPS
Перезагрузка Apache httpd на выделенном или размещенном виртуальном частном сервере (VPS), основанном на популярном дистрибутиве CentOS, не составляет особого труда.Но я рекомендую следовать этим конкретным шагам, чтобы избежать проблем в будущем.
1. Получите root-доступ с помощью sudo.
sudo означает «суперпользователь, делает» и позволяет получить доступ к командам, требующим прав суперпользователя (root). Поскольку вы не входите в систему с правами суперпользователя (пожалуйста, не делайте этого!), Вам понадобится sudo для предоставления привилегий корневого уровня службе, для которой требуется root-доступ.
sudo / sbin / service httpd изящный
Сервисная команда используется для запуска, остановки или изменения сервисов, таких как httpd.
2. Используйте graceful, чтобы начать закрытие дочерних процессов.
Вышеупомянутый параметр graceful сообщает httpd начать процесс перезапуска, сначала сигнализируя всем своим дочерним процессам о завершении их текущих задач. После того, как все дочерние процессы (те, которые обслуживают http-запросы) завершат свои задачи, они закроются; Если какие-либо дочерние процессы в настоящее время не обслуживают запросы, они немедленно закрываются.
3. Перезапустите httpd-сервер Apache.
После того, как все дочерние процессы будут закрыты, сервер Apache httpd перезапустится, включая повторное считывание файла конфигурации, чтобы обеспечить чистый и полностью обновленный запуск.Почти во всех случаях весь процесс выключения / перезапуска вызывает простои всего на несколько миллисекунд.
Как использовать команду остановки вместо изящной
изящный — не единственный способ перезапустить httpd со службой; у вас также есть возможность использовать команду остановки:
sudo / sbin / сервис httpd stop
Имейте в виду, что при остановке попытки немедленно завершить все дочерние процессы, что может привести к зависанию конечных пользователей. Я предпочитаю изящный — лучший выбор для вашего сервера бизнес-класса — потому что это удобнее, чем внезапное завершение дочерних процессов, обслуживающих клиентов.Многие администраторы и особенно программисты используют stop, чтобы остановить свой сервер, часто потому, что не знают, что изящность вообще существует.
1. Перезапустите Apache httpd с помощью команды остановки.
Если вы действительно используете команду stop, выполните следующие действия для перезапуска сервера httpd.
sudo / sbin / сервис httpd start
2. Рассмотрите возможность комбинирования команд.
Вы можете объединить обе эти команды в одну; где Apache httpd перезапустится после завершения всех дочерних процессов.
sudo / sbin / service httpd перезапуск
Какой бы маршрут вы ни выбрали, процесс должен быть понятным. Если нет, не стесняйтесь присылать вопросы и отзывы в разделе комментариев ниже.
Изображение предоставлено: allispossible.org.uk через Compfight cc
.