Наша установка - стандартный nginx (ver 0.7.59) + тонкий сервер upstream на Debian lenny. Прямо сейчас мы находимся в 1 коробке для коробки для веб-приложений и 1 дБ. Недавно мы начали замечать, что thins в конечном итоге начнут «висит», то есть больше не будут получать запросы от nginx. У нас 15 минут, и через 10-15 минут первые 1 или 2 будут подвешены. Если оставить весь день, те же самые немногие, и еще несколько, останутся подвешенными. Единственное исправление, которое мы видели до сих пор, - перезапуск nginx. После перезапуска, повисшие thines начинают получать запросы снова сразу. Из-за этого кажется, что эти тонны могли быть выведены из восходящего пула.Nginx Удаление серверных серверов из пула
Если я правильно понимаю документы (http://wiki.nginx.org/NginxHttpUpstreamModule#server) с по умолчанию (что у нас есть), если nginx не может «обмениваться» с сервером backend 3 раза в течение 10 секунд, он установит, что сервер восходящего потока на " нерабочее "состояние. Затем он будет ждать 10 секунд, а затем снова попробуйте этот сервер. Это имеет смысл, но мы видим, что тонкий вешает бесконечно. Я попытался установить max_fails на 0 для каждого из thins, но это не помогло. Я не могу узнать, что приведет к тому, что восходящий сервер станет постоянно «неработоспособным».
В последнее время мы наблюдаем увеличение темпов роста, поэтому мы не уверены, может ли это быть связано с этим, или просто более очевидным в результате увеличения трафика за более короткий период времени.
Есть ли что-то еще (директива changeble или другие условия) в nginx, что приведет к тому, что сервер полностью выйдет из пула?
Да мы видели, что раньше, и я забыл упомянуть, мы используем справедливый прокси-балансира плагин (http://brainspl.at/articles/2007/11/09/a-fair- proxy-balancer-for-nginx-and-mongrel; http://wiki.nginx.org/NginxHttpUpstreamFairModule), который использует неаккуратное слово algo вместо round-robin. Он работает хорошо, и # request/thin очень близок даже со временем. Я надеялся, что вам не нужно вводить другой слой, например HAProxy, если мы сможем просто выяснить, что заставляет thins больше не получать запросы от nginx. Итак, nginx-ey-balancer в основном имитирует maxconn algo HAProxy с HAProxy? –
Да, nginx-ey-balancer имитирует maxconn algo HAProxy с HAProxy. Это в значительной степени причина, по которой мы перешли на haproxy для начала, теперь ее просто часть нашей архитектуры навсегда. –
Удивительное спасибо за помощь. Подумайте, я попробую nginx-ey-balancer. Хотя у него есть только патчи для nginx v 0.6.34/35 и 0.8.0. Я посмотрю, какой еще более близко соответствует 0.7.59 и надеюсь на лучшее .. или дождитесь, пока 0.8.x станет стабильным. –