Назад | Перейти на главную страницу

nginx отправляет пустые 200 ответов

Я настраиваю резервный сервер, которому поручено принимать любой входящий запрос и отвечать пустым ответом 200. Идея состоит в том, чтобы свести к минимуму время ответа и гарантировать, что мы не отправим никаких 40x или 50x.

Я пробовал использовать return 200; для желаемых местоположений в Nginx, но моей системе мониторинга (Pingdom) не понравился ответ, и я считаю, что сервер не отвечает.

Есть ли лучший способ сделать это, конечно, с минимальными накладными расходами на сервере?

Вы можете заставить nginx вернуть пустой HTTP 200 с помощью блока конфигурации, например:

location = /health {
  return 200;
  #access_log off;
}

Вы можете раскомментировать access_log строку, если вы не хотите, чтобы все эти проверки работоспособности регистрировались.

Код состояния HTTP 204 No Content означает, что "я выполнил запрос, но нет тела для возврата":

10.2.5 204 Нет содержимого

Сервер выполнил запрос, но не должен возвращать тело объекта и может захотеть вернуть обновленную метаинформацию. Ответ МОЖЕТ включать новую или обновленную метаинформацию в форме заголовков объектов, которые, если они присутствуют, ДОЛЖНЫ быть связаны с запрошенным вариантом.

Если клиент является пользовательским агентом, ему НЕ СЛЕДУЕТ изменять вид документа с того, который вызвал отправку запроса. Этот ответ в первую очередь предназначен для того, чтобы разрешить ввод действий, которые могут иметь место, не вызывая изменения в активном представлении документа пользовательского агента, хотя любая новая или обновленная метаинформация ДОЛЖНА применяться к документу, который в настоящее время находится в активном представлении пользовательского агента.

Ответ 204 НЕ ДОЛЖЕН включать тело сообщения и, таким образом, всегда заканчивается первой пустой строкой после полей заголовка.