On Thu, 16 Jun 2005, Andrew Velikoredchanin wrote:
Игорь, в архиве я нашел следующее описание работы с бэкэндами:
"Если при работе с бэкендом произошла ошибка, то бэкенд исключается из
списка работающих на 60 секунд."
У меня стоит nginx 0.1.28. Есть-ли в нем возможность регулировать время
исключения бэкэнда из списка работающих?
У меня в планах сделать хранение файлов не на всех бэкэндах, а
распределять файлы по ним с хранением одного экземпляра. Но в случае
такого алгоритма работы, думаю, возможны проблемы типа:
1. Запрашивается файл file1 которого нет на node1. Он возвращается с
node2. node1 исключается из списка работающих.
2. Запрашивается файл file2 который лежит на node1. Но т.к. node1
исключен из списка работающих, то юзеру вернется ошибка 404.
Может быть я неправ и такой проблемы не будет?
Бэкенд исключается только при ошибках:
proxy_next_upstream error timeout invalid_header http_500;
При http_404 исключения не происходит.
Отлично! :)
Насколько я понял из задачи, то для вас не так уж и отлично, т.е. по ошибке
404 nginx не будет обращаться к следующему бэкэнду, он сразу вернет ответ
клиенту.
При использовании
proxy_next_upstream error timeout invalid_header http_500 http_404;
во всех описанных случаях nginx будет переходить к следующему бэкенду.
А исключение на 60 секунд из списка работающих будет во всех случаях,
кроме http_404.
Игорь Сысоев
http://sysoev.ru