<div class="cnblogs_code">
#upstream的<a href="/tag/fuzai/" target="_blank" class="keywords">负载</a>均衡,weight是权重,可以根据机器配置定义权重。weigth参数表示权值,权值越高被分配到的几率越大。
server </span><span style="color: #800080">192.168</span>.<span style="color: #800080">80.121</span>:<span style="color: #800080">80</span> weight=<span style="color: #800080">3</span><span style="color: #000000">;
server </span><span style="color: #800080">192.168</span>.<span style="color: #800080">80.122</span>:<span style="color: #800080">80</span> weight=<span style="color: #800080">2</span><span style="color: #000000">;
server </span><span style="color: #800080">192.168</span>.<span style="color: #800080">80.123</span>:<span style="color: #800080">80</span> weight=<span style="color: #800080">3</span><span style="color: #000000">;
#<a href="/tag/Nginx/" target="_blank" class="keywords">Nginx</a>的upstream目前<a href="/tag/zhichi/" target="_blank" class="keywords">支持</a>4种方式的分配
#</span><span style="color: #800080">1</span><span style="color: #000000">、轮询(默认)
#每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能<a href="/tag/zidong/" target="_blank" class="keywords">自动</a>剔除。
#</span><span style="color: #800080">2</span><span style="color: #000000">、weight
#指定轮询几率,weight和访问比率成正比,用于后端服务器<a href="/tag/xingneng/" target="_blank" class="keywords">性能</a>不均的情况。
#例如:
#upstream bakend {
# server </span><span style="color: #800080">192.168</span>.<span style="color: #800080">0.14</span> weight=<span style="color: #800080">10</span><span style="color: #000000">;
# server </span><span style="color: #800080">192.168</span>.<span style="color: #800080">0.15</span> weight=<span style="color: #800080">10</span><span style="color: #000000">;
#}
#</span><span style="color: #800080">2</span><span style="color: #000000">、ip_hash
#每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以<a href="/tag/jiejue/" target="_blank" class="keywords">解决</a>session的问题。
#例如:
#upstream bakend {
# ip_hash;
# server </span><span style="color: #800080">192.168</span>.<span style="color: #800080">0.14</span>:<span style="color: #800080">88</span><span style="color: #000000">;
# server </span><span style="color: #800080">192.168</span>.<span style="color: #800080">0.15</span>:<span style="color: #800080">80</span><span style="color: #000000">;
#}
#</span><span style="color: #800080">3</span><span style="color: #000000">、fair(第三方)
#按后端服务器的响应时间来分配请求,响应时间短的优先分配。
#upstream backend {
# server server1;
# server server2;
# fair;
#}
#</span><span style="color: #800080">4</span><span style="color: #000000">、url_hash(第三方)
#按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。
#例:在upstream中加入hash语句,server语句中不能写入weight等其他的参数,hash_method是使用的hash算法
#upstream backend {
# server squid1:</span><span style="color: #800080">3128</span><span style="color: #000000">;
# server squid2:</span><span style="color: #800080">3128</span><span style="color: #000000">;
# hash $request_uri;
# hash_method crc32;
#}
#tips:
#upstream bakend{#定义<a href="/tag/fuzai/" target="_blank" class="keywords">负载</a>均衡设备的Ip及设备状态}{
# ip_hash;
# server </span><span style="color: #800080">127.0</span>.<span style="color: #800080">0.1</span>:<span style="color: #800080">9090</span><span style="color: #000000"> down;
# server </span><span style="color: #800080">127.0</span>.<span style="color: #800080">0.1</span>:<span style="color: #800080">8080</span> weight=<span style="color: #800080">2</span><span style="color: #000000">;
# server </span><span style="color: #800080">127.0</span>.<span style="color: #800080">0.1</span>:<span style="color: #800080">6060</span><span style="color: #000000">;
# server </span><span style="color: #800080">127.0</span>.<span style="color: #800080">0.1</span>:<span style="color: #800080">7070</span><span style="color: #000000"> backup;
#}
#在需要使用<a href="/tag/fuzai/" target="_blank" class="keywords">负载</a>均衡的server中<a href="/tag/zengjia/" target="_blank" class="keywords">增加</a> proxy_pass http:</span><span style="color: #008000">//</span><span style="color: #008000">bakend/;</span>
<span style="color: #000000">
每个设备的状态设置为:
#</span><span style="color: #800080">1</span><span style="color: #000000">.down表示单前的server暂时不参与<a href="/tag/fuzai/" target="_blank" class="keywords">负载</a>
#</span><span style="color: #800080">2</span><span style="color: #000000">.weight为weight越大,<a href="/tag/fuzai/" target="_blank" class="keywords">负载</a>的权重就越大。
#</span><span style="color: #800080">3</span><span style="color: #000000">.max_fails:允许请求失败的<a href="/tag/cishu/" target="_blank" class="keywords">次数</a>默认为1.当超过最大<a href="/tag/cishu/" target="_blank" class="keywords">次数</a>时,返回proxy_next_upstream模块定义的<a href="/tag/cuowu/" target="_blank" class="keywords">错误</a>
#</span><span style="color: #800080">4</span><span style="color: #000000">.fail_timeout:max_fails次失败后,暂停的时间。
#</span><span style="color: #800080">5</span><span style="color: #000000">.backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。
#<a href="/tag/Nginx/" target="_blank" class="keywords">Nginx</a><a href="/tag/zhichi/" target="_blank" class="keywords">支持</a>同时设置多组的<a href="/tag/fuzai/" target="_blank" class="keywords">负载</a>均衡,用来给不用的server来使用。
#client_body_in_file_only设置为On 可以讲client post过来的数据记录到<a href="/tag/wenjian/" target="_blank" class="keywords">文件</a>中用来做debug
#client_body_temp_path设置记录<a href="/tag/wenjian/" target="_blank" class="keywords">文件</a>的目录 可以设置最多3层目录
#location对URL进行匹配.可以进行<a href="/tag/zhongdingxiang/" target="_blank" class="keywords">重定向</a>或者进行新的代理 <a href="/tag/fuzai/" target="_blank" class="keywords">负载</a>均衡
}</span></pre>