У нас есть два Windows Server , один в 2012 R2 и другой в 2008 R2 , который использует HTTP-сервер Apache ( httpd
) 2.4 в прокси / обратном прокси режим (использование ProxyPass
, ProxyPassReverse
и конфигурация виртуальных хостов). Оба сервера используют двоичную сборку Apache 2.4.27 x64 из Apache Haus.
У нас есть несколько сценариев резервного копирования, работающих на обоих серверах. Они останавливают все службы (включая Apache), затем выполняют резервное копирование и снова перезапускают все службы.
Эти сценарии отлично работают уже несколько лет (почти 4 года). Но начиная с 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.
Итак, я протестировал, чтобы убить процесс с помощью pskill
из Sysinternals:
pskill -t 560
И результат:
Copyright (C) 1999-2016 Mark Russinovich
Sysinternals - www.sysinternals.com
Process 5956 killed.
Но это неверно, поскольку процесс httpd
всегда выполняется !
Итак, я обновил Apache с 2.4.27 до 2.4.34, но проблема остается. Единственное, что нужно сделать, чтобы разблокировать ситуацию, - это перезагрузить весь сервер.
Я проверил установленные обновления, и некоторые из них были установлены 11 июля 2018 г.
, поэтому за день до этого:
Итак, я предполагаю, что проблема связана с одним из этих обновлений. Итак, прежде чем удалять их все, есть ли у кого-то такая же проблема, как у меня, я имею в виду Apache 2.4 становится неубиваемым и его нельзя остановить на Windows Server?
Большая проблема в том, если это httpd
процесс может ' Чтобы его не убили, Apache нельзя перезапустить, так как порт 80 уже привязан.
Хорошо, думаю, я был на правильном пути.
После поиска в Интернете недавно установленных обновлений, проблема была вызвана KB4338818 .
Это происходит с другими программами, такими как FileZilla Server, , как подробно описано здесь .
Я только что удалил это обновление безопасности, и теперь Apache можно запускать / останавливать в обычном режиме!
Итак Я надеюсь, что Microsoft исправит это в более позднем обновлении!
Я думаю, вы определенно на правильном пути. У меня была аналогичная проблема с Tomcat на Windows Server. У меня был другой сервер с Tomcat, который не испытывал проблемы, и единственное существенное различие, которое я смог найти, заключалось в том, что на рабочем сервере также был установлен IIS, который работал на других портах. В качестве временного решения я попытался загрузить IIS на проблемный сервер, настроив веб-сайт по умолчанию так, чтобы он использовал нестандартные порты, и проблема, похоже, исчезла без необходимости удаления обновления.
Jidher li Microsoft qed tibda tirranġa l-kwistjoni, sa issa biss għal Server 2016 u Windows 10: https://support.microsoft.com/de-de/help/4345421/windows-10-update-kb4345421
KB4338831, похоже, решает проблему для Windows Server 2012 R2.
Это обновление, не связанное с безопасностью, включает улучшения и исправления, которые были часть KB4338815 (выпущена 10 июля 2018 г.), а также включает эти новые улучшения качества в качестве предварительного просмотра следующего ежемесячного накопительного пакета обновлений. Источник: 18 июля 2018 г. - KB4338831 (предварительная версия ежемесячного накопительного пакета)
Оно доступно как рекомендуемое обновление в Центре обновления Windows.