<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>Re[2]: weight Б upstream</title>
<META http-equiv=Content-Type content="text/html; charset=koi8-r">
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
body {
  margin: 5px 5px 5px 5px;
  background-color: #ffffff;
}
/* ========== Text Styles ========== */
hr { color: #000000}
body, table /* Normal text */
{
 font-size: 9pt;
 font-family: 'Courier New';
 font-style: normal;
 font-weight: normal;
 color: #000000;
 text-decoration: none;
}
span.rvts1 /* Heading */
{
 font-size: 10pt;
 font-family: 'Arial';
 font-weight: bold;
 color: #0000ff;
}
span.rvts2 /* Subheading */
{
 font-size: 10pt;
 font-family: 'Arial';
 font-weight: bold;
 color: #000080;
}
span.rvts3 /* Keywords */
{
 font-size: 10pt;
 font-family: 'Arial';
 font-style: italic;
 color: #800000;
}
a.rvts4, span.rvts4 /* Jump 1 */
{
 font-size: 10pt;
 font-family: 'Arial';
 color: #008000;
 text-decoration: underline;
}
a.rvts5, span.rvts5 /* Jump 2 */
{
 font-size: 10pt;
 font-family: 'Arial';
 color: #008000;
 text-decoration: underline;
}
span.rvts6
{
 font-weight: bold;
 color: #800000;
}
span.rvts7
{
 font-weight: bold;
 color: #800080;
}
span.rvts8
{
 font-size: 8pt;
 font-family: 'arial';
 font-style: italic;
 color: #c0c0c0;
}
/* ========== Para Styles ========== */
p,ul,ol /* Paragraph Style */
{
 text-align: left;
 text-indent: 0px;
 padding: 0px 0px 0px 0px;
 margin: 0px 0px 0px 0px;
}
.rvps1 /* Centered */
{
 text-align: center;
}
--></style>
</head>
<body>

<p>Hello Sergey,</p>
<p><br></p>
<p>Столкнулся с необходимостью сделать похожее решение.</p>
<p>Задача в том, чтобы все запросу ВСЕГДА шлм на первый Upsetream&nbsp;</p>
<p>и только в случае его сбоя, по ошибкe next_upstream переключалось на второй,</p>
<p>если второй тоже дал ошибку, то на 3й.</p>
<p><br></p>
<p>Это возможно, или проблема не решаема ?\</p>
<p>Спасибо !!!</p>
<p><br></p>
<p><br></p>
<p>Wednesday, September 27, 2006, 12:27:08 AM, you wrote:</p>
<p><br></p>
<p><span class=rvts6>&gt; On Wednesday 27 September 2006 00:50, Igor Sysoev wrote:</span></p>
<p><span class=rvts7>&gt;&gt; On Sat, 23 Sep 2006, Sergey Serov wrote:</span></p>
<p><span class=rvts7>&gt;&gt; &gt; Есть проблемы с использованием weight в upstream в целях распределения</span></p>
<p><span class=rvts7>&gt;&gt; &gt; нагрузки.</span></p>
<p><span class=rvts7>&gt;&gt; &gt; Если вес выставлен одинаковый, то нагрузка распределяется равномерно.</span></p>
<p><span class=rvts7>&gt;&gt; &gt; Пример:</span></p>
<p><span class=rvts7>&gt;&gt; &gt; upstream test_backend {</span></p>
<p><span class=rvts7>&gt;&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp;server localhost:59040 weight=10000;</span></p>
<p><span class=rvts7>&gt;&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp;server other_server:59040 weight=10000;</span></p>
<p><span class=rvts7>&gt;&gt; &gt; }</span></p>
<p><span class=rvts7>&gt;&gt; &gt;</span></p>
<p><span class=rvts7>&gt;&gt; &gt; Если же выставить разный вес, то нагрузка распределяется неравномерно по</span></p>
<p><span class=rvts7>&gt;&gt; &gt; времени, каждые десять минут меняется сервер и все. Сужу об этом по</span></p>
<p><span class=rvts7>&gt;&gt; &gt; графикам загрузки серверов. 10 минут все запросы идут на один сервер,</span></p>
<p><span class=rvts7>&gt;&gt; &gt; затем 10 мин. на другой.</span></p>
<p><span class=rvts7>&gt;&gt; &gt; Пример:</span></p>
<p><span class=rvts7>&gt;&gt; &gt;</span></p>
<p><span class=rvts7>&gt;&gt; &gt; upstream test_backend {</span></p>
<p><span class=rvts7>&gt;&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp;server localhost:59040 weight=10000;</span></p>
<p><span class=rvts7>&gt;&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp;server other_server:59040 weight=5000;</span></p>
<p><span class=rvts7>&gt;&gt; &gt; }</span></p>
<p><span class=rvts7>&gt;&gt; &gt;</span></p>
<p><span class=rvts7>&gt;&gt; &gt; location / {</span></p>
<p><span class=rvts7>&gt;&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;expires epoch;</span></p>
<p><span class=rvts7>&gt;&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fastcgi_pass &nbsp; &nbsp;test_backend;</span></p>
<p><span class=rvts7>&gt;&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fastcgi_upstream_max_fails 0;</span></p>
<p><span class=rvts7>&gt;&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fastcgi_next_upstream error timeout invalid_header http_500;</span></p>
<p><span class=rvts7>&gt;&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;include fastcgi_param.conf;</span></p>
<p><span class=rvts7>&gt;&gt; &gt; }</span></p>
<p><span class=rvts7>&gt;&gt; &gt;</span></p>
<p><span class=rvts7>&gt;&gt; &gt; Но обнаружил, что если цель треть нагрузки отправлять на другой сервер,</span></p>
<p><span class=rvts7>&gt;&gt; &gt; то такое помогает:</span></p>
<p><span class=rvts7>&gt;&gt; &gt;</span></p>
<p><span class=rvts7>&gt;&gt; &gt; upstream test_backend {</span></p>
<p><span class=rvts7>&gt;&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp;server localhost:59040 weight=10000;</span></p>
<p><span class=rvts7>&gt;&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp;server localhost:59040 weight=10000;</span></p>
<p><span class=rvts7>&gt;&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp;server other_server:59040 weight=10000;</span></p>
<p><span class=rvts7>&gt;&gt; &gt; }</span></p>
<p><br></p>
<p><span class=rvts7>&gt;&gt; Да, сейчас алгоритм работает так: берётся вес апстрима и пока</span></p>
<p><span class=rvts7>&gt;&gt; не уменьшиться до нуля, к следующему не переходим, поэтому большие</span></p>
<p><span class=rvts7>&gt;&gt; веса неравномерно распрeamяеделяют нагрузку. Я планирую в скором времени</span></p>
<p><span class=rvts7>&gt;&gt; сделать алгоритм, который бы равномерно распределял запросы.</span></p>
<p><br></p>
<p><br></p>
<p><span class=rvts6>&gt; У меня такой большой вес исключительно для того, что бы можно было прописать</span></p>
<p><span class=rvts6>&gt; бэкапные сервера еще с минимально возможным весом. Чтобы срабатывало&nbsp;</span></p>
<p><span class=rvts6>&gt; fastcgi_next_upstream</span></p>
<p><span class=rvts6>&gt; Было бы неплохо, напр. задавать вес=0 и при этом эти сервера участвовали</span></p>
<p><span class=rvts6>&gt; _только_ в fastcgi_next_upstream. Тогда и текущий алогоритм не мешал бы.</span></p>
<p><br></p>
<p><br></p>
<p><br></p>
<p><br></p>
<p><br></p>
<p><span class=rvts8>--&nbsp;</span></p>
<p><span class=rvts8>Best regards,</span></p>
<p><span class=rvts8>Aleksej &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</span></p>
<p><span class=rvts8>ICQ: &nbsp; &nbsp;293-686-24</span></p>
<p><span class=rvts8>GSM:371-293-686-24</span></p>

</body></html>