本文實例講述了CentOS基于nginx反向代理實現負載均衡的方法。分享給大家供大家參考,具體如下:
nginx做負載均衡的優點:
1、工作在網絡的7層之上,可以針對http應用做一些分流的策略,比如針對域名、目錄結構,它的正則規則比HAProxy更為強大和靈活,這也是它目前廣泛流行的主要原因之一,nginx單憑這點可利用的場合就遠多于LVS了
2、nginx對網絡穩定性的依賴非常小,理論上能ping通就就能進行負載功能,這個也是它的優勢之一;相反LVS對網絡穩定性依賴比較大,這點本人深有體會
3、nginx安裝和配置比較簡單,測試起來比較方便,它基本能把錯誤用日志打印出來。LVS的配置、測試就要花比較長的時間了,LVS對網絡依賴比較大
4、可以承擔高負載壓力且穩定,在硬件不差的情況下一般能支撐幾萬次的并發量,負載度比LVS相對小些
注意事項:
1、不同安裝方法nginx的配置文件位置不一樣
2、upstream如果使用ip_hash方式,則每個請求按訪問ip的hash結果分配,這樣每個訪客固定訪問一個后端服務器,可以解決session的問題
環境:
系統:centos6.6
nginx ip:192.168.20.103
web1 ip:192.168.20.193
web2 ip:192.168.20.194
一、安裝nginx
兩種方法,我用的是第1種
第1種 yum安裝,需安裝第三方yum源,因為nginx默認不在centos的yum源中 所以需更新
1
2
3
4
5
6
7
8
|
yum install wget #安裝下載工具 wget http: //www .atomicorp.com /installers/atomic #下載 sh . /atomic #安裝 yum check-update #更新yum源 有的需要更新幾次 才有nginx最新版本 否則是老版本nginx yum remove httpd* php* #刪除系統自帶的軟件包 也可加mysql*前提備份數據庫 yum install nginx #安裝nginx根據提示輸入y進行安裝 chkconfig nginx on #設置nginx開機啟動 service nginx start #啟動nginx 重啟 restart |
第2種 編譯安裝
1
2
3
4
5
|
wget http: //nginx .org /download/nginx-1 .7.8. tar .gz tar -zxvf nginx-1.7.8. tar .gz cd nginx-1.7.8 . /configure make && make install |
二、修改配置文件
nginx 的 upstream默認是以輪詢的方式實現負載均衡,這種方式中,每個請求按時間順序逐一分配到不同的后端服務器,如果后端服務器down掉,能自動剔除。
另外一種方式是ip_hash:每個請求按訪問ip的hash結果分配,這樣每個訪客固定訪問一個后端服務器,可以解決session的問題
修改 /etc/nginx/nginx.conf 增加
1
2
3
4
5
6
|
#負載均衡配置 upstream backend { #ip_hash; server 192.168.20.193; server 192.168.20.194; } |
修改 /etc/nginx/conf.d/default.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
location / { #設置主機頭和客戶端真實地址,以便服務器獲取客戶端真實IP proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #禁用緩存 proxy_buffering off; #反向代理的地址 proxy_pass http: //backend ; root /usr/share/nginx/html ; index index.html index.htm; # example #ModSecurityEnabled on; #ModSecurityConfig /etc/nginx/modsecurity.conf; } |
三、測試
第一次訪問轉發到193,因為 upstream默認是輪詢,第二次則轉發到了194
希望本文所述對大家CentOS服務器維護有所幫助。
原文鏈接:https://blog.csdn.net/nuli888/article/details/51912522