WIKI使用導(dǎo)航
站長(zhǎng)百科導(dǎo)航
站長(zhǎng)專題
- 網(wǎng)站推廣
- 網(wǎng)站程序
- 網(wǎng)站賺錢
- 虛擬主機(jī)
- cPanel
- 網(wǎng)址導(dǎo)航專題
- 云計(jì)算
- 微博營(yíng)銷
- 虛擬主機(jī)管理系統(tǒng)
- 開放平臺(tái)
- WIKI程序與應(yīng)用
- 美國(guó)十大主機(jī)
Nginx負(fù)載均衡
Nginx負(fù)載均衡基礎(chǔ)知識(shí)[ ]
Nginx的upstream目前支持5種方式的分配
1)、輪詢(默認(rèn))
每個(gè)請(qǐng)求按時(shí)間順序逐一分配到不同的后端服務(wù)器,如果后端服務(wù)器down掉,能自動(dòng)剔除。
2)、weight
指定輪詢幾率,weight和訪問(wèn)比率成正比,用于后端服務(wù)器性能不均的情況。
2)、ip_hash
每個(gè)請(qǐng)求按訪問(wèn)ip的hash結(jié)果分配,這樣每個(gè)訪客固定訪問(wèn)一個(gè)后端服務(wù)器,可以解決session的問(wèn)題。
3)、fair(第三方)
按后端服務(wù)器的響應(yīng)時(shí)間來(lái)分配請(qǐng)求,響應(yīng)時(shí)間短的優(yōu)先分配。
4)、url_hash(第三方)
Nginx 負(fù)載均衡實(shí)例1[ ]
upstream bbs.linuxtone.org {#定義負(fù)載均衡設(shè)備的Ip及設(shè)備狀態(tài) server 127.0.0.1:9090 down; server 127.0.0.1:8080 weight=2; server 127.0.0.1:6060; server 127.0.0.1:7070 backup;
}
在需要使用負(fù)載均衡的server中增加
proxy_pass http://bbs.linuxtone.org/;
每個(gè)設(shè)備的狀態(tài)設(shè)置為:
- a)down 表示單前的server暫時(shí)不參與負(fù)載
- b)weight 默認(rèn)為1.weight越大,負(fù)載的權(quán)重就越大。
- c)max_fails :允許請(qǐng)求失敗的次數(shù)默認(rèn)為1.當(dāng)超過(guò)最大次數(shù)時(shí),返回proxy_next_upstream 模塊定義的錯(cuò)誤
- d)fail_timeout:max_fails次失敗后,暫停的時(shí)間。
- e)backup:其它所有的非backup機(jī)器down或者忙的時(shí)候,請(qǐng)求backup機(jī)器。所以這臺(tái)機(jī)器壓力會(huì)最輕。
nginx支持同時(shí)設(shè)置多組的負(fù)載均衡,用來(lái)給不用的server來(lái)使用。
client_body_in_file_only 設(shè)置為On 可以講client post過(guò)來(lái)的數(shù)據(jù)記錄到文件中用來(lái)做debug client_body_temp_path 設(shè)置記錄文件的目錄 可以設(shè)置最多3層目錄 location 對(duì)URL進(jìn)行匹配.可以進(jìn)行重定向或者進(jìn)行新的代理 負(fù)載均衡
Nginx 負(fù)載均衡實(shí)例2[ ]
按訪問(wèn)url的hash結(jié)果來(lái)分配請(qǐng)求,使每個(gè)url定向到同一個(gè)后端服務(wù)器,后端服務(wù)器為緩存時(shí)比較有效,也可以用作提高Squid緩存命中率.
簡(jiǎn)單的負(fù)載均等實(shí)例:
#vi nginx.conf //nginx主配置文件核心配置 ………. #loadblance my.linuxtone.org upstream my.linuxtone.org { ip_hash; server 127.0.0.1:8080; server 192.168.169.136:8080; server 219.101.75.138:8080; server 192.168.169.117; server 192.168.169.118; server 192.168.169.119; } ………….. include vhosts/linuxtone_lb.conf; ……… # vi proxy.conf proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 50m; client_body_buffer_size 256k; proxy_connect_timeout 30; proxy_send_timeout 30; proxy_read_timeout 60; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; proxy_next_upstream error timeout invalid_header http_500 http_503 http_404; proxy_max_temp_file_size 128m; proxy_store on; proxy_store_access user:rw group:rw all:r; #nginx cache #client_body_temp_path /data/nginx_cache/client_body 1 2; proxy_temp_path /data/nginx_cache/proxy_temp 1 2; #vi linuxtone_lb.conf server { listen 80; server_name my.linuxtone.org; index index.php; root /data/www/wwwroot/mylinuxtone; if (-f $request_filename) { break; } if (-f $request_filename/index.php) { rewrite (.*) $1/index.php break; } error_page 403 http://my.linuxtone.org/member.php?m=user&a=login; location / { if ( !-e $request_filename) { proxy_pass http://my.linuxtone.org; break; } include /usr/local/nginx/conf/proxy.conf; } }