Linux叢集之keepalive+Nginx
叢集從功能實現上分高可用和負載均衡:
高可用叢集,即“HA"叢集,也常稱作“雙機熱備”。
當提供服務的機器宕機,備胎將接替繼續提供服務;
實現高可用的開源軟體有:heartbeat、keepalived。,keepalived還有負載均衡的功能。
核心原理都是通過心跳線連線兩臺伺服器,一臺用於提供服務,當這臺機子宕機了,另外一臺伺服器頂替。;
- 負載均衡叢集,需要有一臺伺服器作為分發器,它負責把使用者的請求分發給後端的伺服器處理,在這個叢集裡,除了分發器外,就是給使用者提供服務的伺服器了,這些伺服器數量至少為2臺,實現負載均衡的開源軟體有LVS、keepalived、haproxy、nginx,商業的有F5、Netscaler。
keepalivied工作原理:
keepalived通過VRRP(Virtual Router Redundancy Protocl,虛擬路由冗餘協議)來實現高可用。
- 它是實現路由高可用的一種通訊協議,在這個協議裡會將多臺功能相同的路由器組成一個小組,這個小組裡會有1個master角色和N(N>=1)個backup角色。
- master會通過組播的形式向各個backup傳送VRRP協議的資料包,當backup收不到master發來的VRRP資料包時,就會認為master宕機了。此時就需要根據各個backup的優先順序來決定誰成為新的mater。
- Keepalived要有三個模組,分別是core、check和vrrp。其中core模組為keepalived的核心,負責主程序的啟動、維護以及全域性配置檔案的載入和解析,check模組負責健康檢查,vrrp模組是來實現VRRP協議的。
環境: master:192.168.123.128 keepalive+Nginx
backup:192.168.123.129 keepalive+Nginx
VIP(Virtual IP):192.168.123.100 虛擬IP;
nginx的安裝 在這裡就不說了,這裡主要說的不是這個;
安裝keepalive:
yum install -y keepalived
修改配置檔案:
vim /etc/keepalived/keepalived.conf
keepalived.conf內容如下:
global_defs { notification_email {View Code1012447978@qq.com } notification_email_from [email protected] smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id LVS_DEVEL } vrrp_script chk_nginx{ script "/usr/local/sbin/check_ng.sh" interval 3 } vrrp_instance VI_1 { state MASTER interface ens33 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass gys } virtual_ipaddress { 192.168.123.100 } track_script{ chk_nginx } }
自定義指令碼,監控Nginx服務:
vim /usr/local/sbin/check_ng.sh
check_ng.sh指令碼內容如下
#!/bin/bash # 時間變數 用於記錄日誌 d=`date --date today +%Y%m%d_%H:%M:%S` # 計算Nginx程序數量 n=`ps -C nginx --no-heading|wc -l` # 如果程序為0,則啟動Nginx,並且再次檢測程序數量 # 如果還為0,說明Nginx無法啟動,此時需要關閉keepalived if [ $n -eq "0" ]; then /etc/init.d/nginx start n2=`ps -C nginx --no-heading|wc -l` if [ $n2 -eq "0" ];then echo "$d nginx down,keepalived will stop">> /var/log/check_ng.log systemctl stop keepalived fi fiView Code
附權,否則keepalived無法呼叫
chmod 777 /usr/local/sbin/check_ng.sh
啟動keepalived
systemctl start keepalived
根據上面的配置檔案;如果本機的Nginx沒有啟動,keepalived啟動的時候會把Nginx拉起來。
檢視nginx是否起成功
ps -ef|grep nginx
檢視keepalived是否起成功
ps -ef|grep keepalived
Master配置完成後,129上配置backup;
vim /etc/keepalived/keepalived.conf
內容如下:
global_defs { notification_email { [email protected] } notification_email_from [email protected] smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id LVS_DEVEL } vrrp_script chk_nginx{ script "/usr/local/sbin/check_ng.sh" interval 3 } vrrp_instance VI_1 { state backup interface ens33 virtual_router_id 51 priority 90 advert_int 1 authentication { auth_type PASS auth_pass gys } virtual_ipaddress { 192.168.123.100 } track_script{ chk_nginx } }View Code
監控指令碼內容如下
#!/bin/bash # 時間變數 用於記錄日誌 d=`date --date today +%Y%m%d_%H:%M:%S` # 計算Nginx程序數量 n=`ps -C nginx --no-heading|wc -l` # 如果程序為0,則啟動Nginx,並且再次檢測程序數量 # 如果還為0,說明Nginx無法啟動,此時需要關閉keepalived if [ $n -eq "0" ]; then /etc/init.d/nginx start n2=`ps -C nginx --no-heading|wc -l` if [ $n2 -eq "0" ];then echo "$d nginx down,keepalived will stop">> /var/log/check_ng.log systemctl stop keepalived fi fiView Code
附權:
chmod 777 /usr/local/sbin/check_ng.sh
啟動keepalived
systemctl start keepalived
本例項中,可以模擬出master宕機後,訪問vip地址,可以過度到backup上,但是無法通過keepalived來拉起Nginx。
如果有人知道怎麼回事,麻煩告訴我一聲;
相關推薦
Linux叢集之keepalive+Nginx
叢集從功能實現上分高可用和負載均衡: 高可用叢集,即“HA"叢集,也常稱作“雙機熱備”。 當提供服務的機器宕機,備胎將接替繼續提供服務; 實現高可用的開源軟體有:heartbeat、keepalived。,keepalived還有負載均衡的功能。 核心原理都是通過心跳線連線兩臺伺服器,一臺用於提供服務
Linux教程之:Nginx [emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use)
php use 命令 端口 htm pos html dream targe Nginx [emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use) 使用命令關閉占用80端口的程序 sudo fuser
Linux學習之路-Nginx(1)介紹篇【22】---20180206
Nginx架構介紹 I/O介紹 一、Nginx介紹Nginx:engine X ,2002年,開源,商業版http協議:web服務器(類似於httpd)、http reverse proxy(類似於httpd)、imap/pop3 reverse proxy,tcpNGINX is a free, o
Linux學習之路-Nginx(2)安裝及配置文件篇【23】---20180210
Nginx編譯 Nginx yum安裝 主配置文件分析 Core functionality分 一、Nginx的安裝方法及配置介紹1、yum安裝官方: http://nginx.org/packages/centos/7/x86_64/RPMSFedora-EPEL: http
Linux學習之路-Nginx(4)模塊簡要介紹篇【27】---20180228
ngx_http_proxy_modu ngx_http_headers_mo ngx_http_fastcgi_mo 一、ngx_http_proxy_module模塊ngx_http_proxy_module轉發請求至另一臺主機1、proxy_pass URL;Context:location
Linux叢集、Keepalived—Nginx高可用叢集架構搭建
叢集介紹Linux叢集根據功能劃分為兩大類:高可用和負載均衡。高可用叢集高可用叢集通常為2臺伺服器,一臺工作,另一臺作為冗餘,當提供服務的機器宕機時,冗餘將接替繼續提供服務。實現高可用的開源軟體有:heartbeat、Keepalived,其中heartbeat已無人維護,所
cool-2018-03-08-FastDFS叢集搭建+keepalive+nginx高可用
這裡以我搭建好的FastDFS叢集高可用+負載均衡的虛擬機器為例,下載地址:一、環境準備 centOS-6.6,VMware 8個節點,node22,node23,node25~node30;其中node22,node23作為keepalived+nginx高可用負
Linux開發之Nginx安裝配置
linux運維 Nginx 扣丁學堂 雲計算 Nginx("engine x")是一款是由俄羅斯的程序設計師Igor Sysoev所開發高性能的 Web和 反向代理 服務器,也是一個 IMAP/POP3/SMTP 代理服務器。在高連接並發的情況下,Nginx是Apache服
【Linux Nginx實戰】之初識Nginx(一)
Nginx LNMP 實戰 1.Nginx是什麽? nginx是一款高性能的HTTP和反向代理服務器軟件,第一個開源版本誕生於2004年,雖然誕生較晚但經過十多年的發展,已經成為非常流行的web服務器軟件,下圖是w3techs公布的全球網站服務器軟件統計報告 2.Nginx為什麽流行? 首先,ng
Linux基礎之命令練習Day7-nginx,nfs
調度 個數 等於 集群配置 大小設置 selinux VC In 及其 一. Nginx Nginx("engine x") 是一個高性能的HTTP和反向代理服務器,也是一個IMAP/POP3/SMTP服務器。Nginx是由Igor Sysoev為俄羅斯訪問量第二的Ramb
linux服務之nginx-隨筆-2(nginx配置站點的三種方式)
三種方式: 1.域名 2.埠 3.IP 直接上配置檔案 一.域名 server { listen 80; server_name www.e
linux服務之nginx-隨筆-5(利用狀態模組,顯示使用者訪問連線狀態資訊)
使用的是nginx的--with-http_stub_status_module 模組 一、創建出一個狀態模組的站點檔案 cat >>/application/nginx/c
Linux下MongoDB叢集之建立並配置副本叢集
案例演示:一、在linux環境下,在一臺機器上建立3個節點,建立一個測試為目的的副本集1.首先建立3個不同的資料儲存資料夾[[email protected] db]# cd /usr/local/mongodb/data/db [[email prote
企業級Linux講座之在SAN上建立高可靠性SAMBA叢集
2、Install and setup Red Hat Cluster Manager 1) 安裝Red Hat 叢集管理員套件 用root 登入rhel3-1 安裝clumanager 與redhat-config-cluster 套件才能設定Red Hat 叢集管理員,將光碟收入光
Nginx+Tomcat搭建高效能負載均衡叢集之枯藤老樹
--枯藤老樹昏鴉,小橋流水人家,古道西風瘦馬。夕陽西下,斷腸人 在天涯。 一、 工具 nginx-1.8.0 apache-tomcat-6.0.33 二、 目標 實現高效能負載均衡的Tomcat叢集:
【Nginx-反向代理伺服器】實踐篇(三)之Tomcat+Nginx搭建叢集
繼前面的部落格,本篇部落格來實踐操作體會一下Nginx配置過程如下:(1)到Nginx官網下載Nginx的Windows版本:點選開啟連結(這裡我們使用nginx/Windows-1.4.7版本進行實驗
linux之設定nginx域名轉發
server_name www.imooc.com; // nginx的虛擬的域名 access_log /usr/local/nginx/logs/access.log combined; // log檔案的位置 index index.html index.htm index.jsp
java叢集之redis sentinel、nginx、session共享配置詳解
說明 1、看此篇文章之前,你需要對spring 基礎,redis等相關技術基礎. 2、redis 服務端使用2主2從,分佈交叉部署至2臺伺服器,且分佈部署2臺tomcat web應用,兩臺伺服器分別部署2臺nginx來實現負載均衡。 3、你需要對叢集的概念有所
Linux服務之 Nginx安裝
ins col devel path req .com prefix 日誌 make 安裝包下載: 鏈接:https://pan.baidu.com/s/1yna9nvT_9iYw4_0uVQRgFw 提取碼:nurm yum -y install gcc aut
我的Linux自學之路
記錄學習 作為一只菜鳥,並且沒有任何Linux的經驗,我從網上下載的視頻自學Linux。歡迎各位新手或大師指點,開通博客意在記錄自己學習的點滴。 由於項目在公安行業內,系統的版本無法跟現代的大型網後臺的系統版本相提並論。公安系統的版本大多停留在四五年前,因為是自學,下載的視頻也是四五年前的,所以後