Недавно мой сайт на Drupal 8 стал иногда валиться с 500-й ошибкой. Началось это с очередного обновления. Проблема, как мне кажется, связана с некорректной работой системы кеширования. Помогает перезагрузка IIS.
Надоело мне перезагружать IIS вручную, погуглил и написал простенький PowerShell скрипт, который проверяет стaтус URL. Если 500-я ошибка - перезагружает IIS командой iisreset.
$SITEURL = 'https://internet-lab.ru'
function Get-UrlStatusCode([string] $Url) {
try
{
(Invoke-WebRequest -Uri $Url -UseBasicParsing -DisableKeepAlive).StatusCode
}
catch [Net.WebException]
{
[int]$_.Exception.Response.StatusCode
}
}
$HTTP_Status = Get-UrlStatusCode $SITEURL
If ($HTTP_Status -eq 500) {
# reset iis
iisreset.exe
}
В Планировщике заданий создаю расписание, для запуска скрипта раз в 10 минут.
Если теперь Drupal 8 снова начнёт чудить, то скрипт автоматически перезапустит веб-сервер.