Nginx均衡負載nginx
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf算法
upstream tomcat_server {
server 192.168.200.112:8080 weight=1;
server 192.168.200.113:8080 weight=1;vim
}後端
server {
........................tomcat
location ~* \.jsp$ {
proxy_pass http://tomcat_server;
proxy_set_header Host $http_host;
}服務器
.........................session
}負載均衡
Nginx負載均衡算法jsp
1.輪詢(默認)性能
請求按時間順序分配不一樣的服務器。
upstream tomcat_server {
server 192.168.200.112:8080 weight=1;
server 192.168.200.113:8080 weight=1;
}
weigh值越大分配到的訪問機率越高,用於後臺服務器性能不均衡的狀況下。
upstream tomcat_server {
server 192.168.200.112:8080 weight=1;
server 192.168.200.113:8080 weight=2;
}
2.least_conn
least_connected方式能夠更公平的將負載分配到多個機器上面。nginx不會將請求分發到繁忙的機器上。
upstream tomcat_server {
least_conn;
server 192.168.200.112:8080 weight=1;
server 192.168.200.113:8080 weight=1;
}
3.ip_hash
每一個請求按訪問IP的哈希結果分配,使來自同一個IP的訪客固定訪問一臺服務器,而且能夠有效解決動態網頁存在的session共享問題。
upstream tomcat_server {
ip_hash;
server 192.168.200.112:8080 weight=1;
server 192.168.200.113:8080 weight=1;
}
4.fair
能夠根據頁面大小和加載時間長短智能地進行負載均衡,也就是根據後端服務器的響應時間來分切請求,響應時間短的優先分配。Nginx自己不支持fair,若是須要這種調度算法,則必須安裝upstream_fair。
upstream tomcat_server {
fair;
server 192.168.200.112:8080 weight=1;
server 192.168.200.113:8080 weight=1;
}
5.url_hash
按訪問的URL的哈希結果來分配請求,使每一個URL定向到一臺後端服務器,能夠進一步提升效率。Nginx自己不支持url_hash,若是須要這種調度算法,則必須安裝Nginx的hash軟件包。
upstream tomcat_server {
hash $request_url;
hash_method crc32;
server 192.168.200.112:8080 weight=1;
server 192.168.200.113:8080 weight=1;
}
Nginx負載均衡調度狀態
down:表示當前的server暫時不參與負載均衡。
backup:預留的備份器。當其餘全部的非backup機器出現故障時,纔會請求backup機器,所以這臺機器的訪問壓力最低。
max_fails:容許請求失敗的次數,默認爲1,超過期,返回proxy_next_upstream模塊定義的序錯誤。
fail_timeout:請求請求失敗超時時間,在經歷了max_fails次失敗後,暫停服務時間。max_fails和fail_timeout能夠一塊兒使用。
upstream tomcat_server {
server 192.168.200.112:8080 weight=1;
server 192.168.200.113:8080 weight=1 bdown;
server 192.168.200.112:8080 weight=1 backup;
server 192.168.200.113:8080 weight=1 max_fails=3 fail_timeout=10s;
}