Apache 2.4 не убиваем и не может быть остановлен на Windows Server

11

У нас есть два Windows Server , один в 2012 R2 , а другой в 2008 R2 , который использует Apache HTTP Server ( httpd) 2,4 в прокси / обратного прокси - режим (использование ProxyPass, ProxyPassReverseи виртуальные хосты конфигурации). Оба сервера используют двоичную сборку Apache 2.4.27 x64 от Apache Haus.

У нас есть несколько скриптов резервного копирования, работающих на обоих серверах. Они останавливают все службы (включая Apache), затем выполняют резервное копирование и снова запускают все службы.

Эти скрипты работают нормально уже несколько лет (почти 4 года). Но, начиная с July 12, 2018поведения, теперь это странно. Сценарии резервного копирования выполняют свою работу, останавливают все службы, выполняют резервное копирование, но теперь все службы перезапускаются, кроме Apache.

После исследования я обнаружил, что служба Apache 2.4.27 не может быть остановлена. При использовании консоли служб и попытке вручную остановить службу на консоли отображается сообщение «Остановка», и ничего не происходит.

Итак, я проверил запущенные процессы и увидел, что httpd.exeпроцесс запущен. Я пытался убить этот процесс, но безуспешно.

Итак, я попробовал:

taskkill /im "httpd.exe" /f /t

И вывод:

ERROR: The process with PID 560 (child process of PID 480) could not be terminated.
Reason: There is no running instance of the task.

Итак, я проверил, чтобы убить процесс с pskillSysinternals:

pskill -t 560

И вывод:

Copyright (C) 1999-2016  Mark Russinovich
Sysinternals - www.sysinternals.com

Process 5956 killed.

Но это неверно, так как httpdпроцесс всегда запущен!

Итак, я обновил Apache с 2.4.27 до 2.4.34, но проблема остается. Единственное, что нужно сделать, чтобы разблокировать ситуацию, это перезагрузить весь сервер.

Я проверил установленные обновления, и некоторые из них были установлены July 11, 2018так за день до этого:

  • KB4338420
  • KB4338818
  • KB4339093
  • KB4338423

Поэтому я предполагаю, что проблема в одном из этих обновлений. Итак, прежде чем удалить все из них, есть ли кто-то, кто имеет ту же проблему, что и я, я имею в виду, что Apache 2.4 становится неубиваемым и не может быть остановлен на Windows Server?

Большая проблема в том, что если этот httpdпроцесс не может быть убит, Apache не может быть перезапущен, так как порт 80 уже связан.

SiZiOUS
источник
3
Название звучит как
киношный
Это было в розыске хахаха
SiZiOUS

Ответы:

10

Хорошо, так что я думаю, что я был на правильном пути.

После поиска в Интернете о недавно установленных обновлениях KB4338818 вызывает проблемы.

Это происходит для других программ, таких как FileZilla Server, как подробно описано здесь .

Я только что удалил это обновление для системы безопасности, и теперь Apache можно запускать / останавливать как обычно!

Поэтому я надеюсь, что Microsoft исправит это в более позднем обновлении!

SiZiOUS
источник
Я вижу, вы нашли свой ответ, но мне было интересно, если бы перезапуск сервера также решил проблему? Кроме того, если обновление было применено, когда Apache не был запущен, возможно, что это не вызвало проблем.
MonkeyZeus
Да, как я уже объяснил в исходном вопросе, единственное решение, чтобы разблокировать ситуацию, это перезапустить весь сервер ... что является грязным обходным путем!
SiZiOUS
Извините, я пропустил эту деталь, она была немного похоронена. После перезагрузки процесс остался неубиваемым? Я просто спрашиваю, потому что я использую Windows 7 x64 с Apache на своей локальной машине, но еще не получил KB4338818, поэтому я хочу знать, чего ожидать.
MonkeyZeus
1
Нет проблем, вам не нужно оправдывать свой комментарий. :) После перезагрузки, если вы настроили автоматический запуск Apache, он будет работать. Но когда вы попытаетесь остановить службу (вручную или с помощью сценариев), httpdпроцесс остановится и станет недоступен для уничтожения.
SiZiOUS
1

KB4338831, кажется, решает проблему для Windows Server 2012 R2.

Это обновление, не относящееся к безопасности, включает улучшения и исправления, которые были частью KB4338815 (выпущено 10 июля 2018 г.), а также включает эти новые улучшения качества в качестве предварительного просмотра следующего обновления Ежемесячный накопительный пакет. Источник: 18 июля 2018 г. - KB4338831 (предварительный просмотр ежемесячного накопительного пакета)

Это доступно как рекомендуемое обновление на Центре обновления Windows.

Алессандро Брандао
источник
0

Я думаю, что вы определенно на правильном пути. У меня была похожая проблема с Tomcat на Windows Server. У меня был другой сервер с Tomcat, который не испытывал проблемы, однако единственное существенное отличие, которое я смог найти, было то, что на рабочем сервере также была установлена ​​IIS и работала на других портах. В качестве обходного пути я попытался загрузить IIS на проблемный сервер, настроив веб-сайт по умолчанию, чтобы он использовал нестандартные порты, и проблема, похоже, исчезла без необходимости удаления обновления.

Дон преззиозо
источник
1
Хорошо ... Я забираю это ... Трюк IIS, кажется, работает только время от времени. Порт 80, кажется, исправлен с загрузкой IIS, но 443 работает только иногда. Кроме того, для меня оскорбительное обновление кажется KB4338815. По крайней мере, для моего производственного сервера это единственное, что работает на нем, поэтому я могу перезагрузить компьютер почти так же легко, как перезапустить Tomcat.
Дон Прециозо