七層負載均衡 nginx
簡單解說:
==============================================================
一、集群的分類:(cluster)
1、高可用集群 HA high availability
避免單節點故障
軟件:keepalived
2、負載均衡集群 LB load balance
提高負載,提高並發量
軟件:nginx反向代理 lvs
硬件:硬件負載均衡器 F5(BigIP)和redware
3、 HPC高性能運算集群
4、分布式存儲集群
極大的提升存儲容量,提供數據高可用,保證數據安全
軟件:ceph glusterfs hdfs
二、Nginx proxy 是 Nginx 的王牌功能,利用 proxy 基本可以實現一個完整的 7 層負載均。
- 功能強大,性能卓越,運行穩定。
- 配置簡單靈活。
- 能夠自動剔除工作不正常的後端服務器。
- 上傳文件使用異步模式。
- 支持多種分配策略,可以分配權重,分配方式靈活。
三、七層負載均衡與四層負載均衡:
lvs和nginx的區別:
nginx:
nginx可以用來做http的反向代理,在配置文件中使用upstream實現http請求的多種方式的均衡轉發。
由於采用的是異步轉發可以做到如果一個服務器請求失敗,立即切換到其他服務器,直到請求成功或者最後一臺服務器失敗為止。這可以最大程度的提高系統的請求成功率。
lvs采用的是同步請求轉發的策略。
這裏說一下同步轉發和異步轉發的區別。同步轉發是在lvs服務器接收到請求之後,立即redirect(重定向)到一個後端服務器,由客戶端直接和後端服務器建立連接。異步轉發是nginx在保持客戶端連接的同時,發起一個相同內容的新請求到後端,等後端返回結果後,由nginx返回給客戶端。
進一步來說:當作為負載均衡服務器的nginx和lvs處理相同的請求時,所有的請求和響應流量都會經過nginx;但是使用lvs時,僅請求流量經過lvs的網絡,響應流量由後端服務器的網絡返回。
也就是,當作為後端的服務器規模龐大時,nginx的網絡帶寬就成了一個巨大的瓶頸。
但是僅僅使用lvs作為負載均衡的話,一旦後端接受到請求的服務器出了問題,那麽這次請求就失敗了。但是如果在lvs的後端在添加一層nginx(多個),每個nginx後端再有幾臺應用服務器,那麽結合兩者的優勢,既能避免單nginx的流量集中瓶頸,又能避免單lvs時一錘子買賣的問題。
==============================================================
四、具體配置
設置環境:
1、關閉防火墻,selinux
2、域名解析
vim /etc/hosts
一臺客戶機:client
不用做任何操作,但要保證網絡能通
在網頁中輸入代理的ip,若測試動態頁面,在ip後面加上index.php
一臺代理:nginx-dr
1、安裝nginx
2、修改nginx配置文件
[root@nginx-dr ~]# vim /etc/nginx/nginx.conf
註:在http中加入upstream,在server中location正則匹配動靜態網頁
3、重啟nginx
systemctl restart nginx
兩臺做靜態網頁:web1,web2
web1:
1、下載apache
yum -y install httpd
2、進入網頁配置文件,添加apache靜態網頁
[root@web1 ~]# cd /var/www/html/
[root@web1 html]# vim index.html
web1 apache
3、啟動apache
web2:
1、下載nginx
[root@web2 ~]# yum -y install nginx
2、進入網頁配置文件,添加nginx靜態網頁
[root@web2 ~]# cd /usr/share/nginx/html/
[root@web2 html]# vim index.html
web2 nginx
3、啟動nginx
兩臺做動態網頁:php1,php2
php1:
1、下載apache、php
[root@php1 ~]# yum -y install httpd php
2、進入網頁配置文件,添加apache動態網頁
[root@php1 ~]# cd /var/www/html/
[root@php1 html]# vim index.php
3、啟動apache
[root@php1 ~]# systemctl restart httpd
php2:
1、下載nginx、php、php-fpm
[root@php2 ~]# yum -y install nginx php php-fpm
2、進入網頁配置文件,添加nginx動態網頁
[root@php2 ~]# cd /usr/share/nginx/html/
[root@php2 html]# vim index.php
3、進入php-fpm的配置文件
[root@php2 ~]# vim /etc/nginx/nginx.conf
4、進入nginx的配置文件
[root@php2 ~]# vim /etc/php-fpm.d/www.conf
5、啟動nginx、php-fpm
[root@php2 ~]# systemctl restart nginx
[root@php2 ~]# systemctl restart php-fpm
測試:
直接在頁面中輸入代理機的ip,就可以了
<不太完整請見諒!>
七層負載均衡 nginx