1. 程式人生 > >nginx負載均衡單點解決方案

nginx負載均衡單點解決方案

Nginx有很強代理功能,但是一臺nginx就形成了單點,現在使用keepalived來解決這個問題,keepalived的故障轉移時間很短.Nginx+keepalived雙機實現nginx反向代理服務的高可用,一臺nginx掛掉之後不影響應用也不影響內網訪問外網。

keepalived它是一個基於VRRP協議來實現的WEB服務高可用方案,可以利用其來避免單點故障。一個WEB服務至少會有2臺伺服器執行Keepalived,一臺為主伺服器(MASTER),一臺為備份伺服器(BACKUP),但是對外表現為一個虛擬IP,主伺服器會發送特定的訊息給備份伺服器,當備份伺服器收不到這個訊息的時候,即主伺服器宕機的時候,備份伺服器就會接管虛擬IP,繼續提供服務,從而保證了高可用性。

nginx的安裝在我之前的部落格中已經寫過,這裡就不再贅述。

然後就是安裝keepalived​

命令:wget​ http://www.keepalived.org/software/keepalived-1.1.20.tar.gz

根據需要選擇適合自己版本的keepalived下載。

解壓:tar -zxvf /root/keepalived-1.2.19.tar.gz(根據自己的下載路徑填寫)

​進入解壓後的檔案中cd  /root/keepalived-1.2.19。如圖有一個configure的可執行檔案​

在/usr/local檔案下新建keepalived資料夾

mkdir /usr/local/keepalived​

​接著執行./configure  --prefix=/usr/local/keepalived

 

這裡用nginx來負載均衡不用lvs來負載所以不用管這一行。

make&&make install​ 來安裝完後/usr/local/keepalived下生成四個資料夾代表安裝成功。

這是/usr/local/keepalived資料夾的目錄結構

安裝完以後執行以下命令以方便以後管理

mkdir /etc/​keepalived

  • ​ln -s /usr/local/sbin/keepalived /usr/sbin/ 或者
  • ​cp /usr/local/keepalived/sbin/keepalived  /usr/sbin

cp /usr/local/keepalived/etc/sysconfig/keepalived  /etc/sysconfig

cp /usr/local/keepalived/etc/rc.d/init.d/keepalived  /etc/rc.d/init.d/

cp /usr/local/keepalived/etc/keepalived/keepalived.conf  /etc/keepalived/

啟動keepalived:service keepalived start

keepalived 雙主配置

​主:真實ip192.168.110.134   vip192.168.110.80

備:​真實ip192.168.110.135   vip192.168.110.90

主:

vrrp_instance VI_1 {

    state MASTER      // 定義為主伺服器

    interface eth0       //vip繫結的網絡卡

    virtual_router_id 51   //虛擬路由的id,主從必須一致

    priority 100      //優先順序,隨機值但是主伺服器的一定比從伺服器的大

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 1111

    }

    virtual_ipaddress {

        192.168.110.80         //繫結的虛擬ip

    }

}

vrrp_instance VI_2 {

    state BACKUP         //定義為從伺服器

    interface eth0        //vip繫結的網絡卡

    virtual_router_id 52  //虛擬路由的id,主從必須一致

    priority 90       //優先順序,隨機值但是主伺服器的一定比從伺服器的大

    advert_int 1

    authentication {

auth_type PASS

auth_pass 1111

    }

    virtual_ipaddress{

192.168.110.90      //繫結vip

    }

}

​配置玩重啟keepalived:service keepalived restart

​ip  addr 檢視

 

備:​

​vrrp_instance VI_1 {

    state BACKUP

    interface eth0

    virtual_router_id 51

    priority 90

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 1111

    }

    virtual_ipaddress {

        192.168.110.80

    }

}

vrrp_instance VI_2 {

    state MASTER

    interface eth0

    virtual_router_id 52

    priority 100

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 1111

    }

    virtual_ipaddress{

        192.168.110.90

    }

}

測試:​主伺服器正常工作時,為了方便區別驗證

 

主伺服器關機或者服務程序死掉立馬切換備伺服器,切換時間人感覺不出來。

負載均衡:

​nginx 的 upstream預設是以輪詢的方式實現負載均衡,這種方式中,每個請求按時間順序逐一分配到不同的後端伺服器,如果後端伺服器down掉,能自動剔除。另外一種方式是ip_hash:每個請求按訪問ip的hash結果分配,這樣每個訪客固定訪問一個後端伺服器,可以解決session的問題。 

​每個主伺服器如下配置

vi /etc/nginx/nginx.conf

​upstream test {

        server 127.0.0.1 down; //本地伺服器不參與負載

        server 192.168.110.136:80 weight=5; //後臺伺服器

        server 192.168.110.137:80 weight=5;//後臺伺服器

        #ip_hash;

}

​location / {

        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_pass http://test;

        root   /usr/share/nginx/html;

        index  index.html index.htm;

    }

配置非常詳細文章:https://yq.aliyun.com/articles/47355


相關推薦

nginx負載均衡解決方案

Nginx有很強代理功能,但是一臺nginx就形成了單點,現在使用keepalived來解決這個問題,keepalived的故障轉移時間很短.Nginx+keepalived雙機實現nginx反向代理服務的高可用,一臺nginx掛掉之後不影響應用也不影響內網訪問外網。

nginx 負載均衡session複製解決方案

nginx 負載均衡,必定要用到分散式叢集方案,只要涉及分散式,session共享必定是一個大問題,不僅僅是nginx的問題。我們用nginx做負載均衡,同一個請求不一定會被分配到哪個伺服器中,那麼我們下一個請求可能又被分到了其他的伺服器,這種情境下,就會造成s

web負載均衡的多種解決方案

web load balancing,簡單地說就是給我們的伺服器叢集分配”工作任務“。 1.反向代理 反向代理服務的核心工作主要是轉發HTTP請求,因為它工作在HTTP層(應用層),也就是網路結構中的第七層,因此也被稱為”七層負載均衡“,可以做反向代理的軟體很多,比較常見

Nginx負載均衡的4種方案配置

1、輪詢 輪詢即Round Robin,根據Nginx配置檔案中的順序,依次把客戶端的Web請求分發到不同的後端伺服器。 配置的例子如下: http{ upstream sampleapp { server <<dns entry or IP Add

域名到站點的負載均衡技術一覽(主要是探討一臺Nginx抵禦大併發的解決方案)(轉)https://www.cnblogs.com/EasonJim/p/7823410.html

一、問題域 Nginx、LVS、Keepalived、F5、DNS輪詢,往往討論的是接入層的這樣幾個問題: 1)可用性:任何一臺機器掛了,服務受不受影響 2)擴充套件性:能否通過增加機器,擴充系統的效能 3)反向代理+負載均衡:請求是否均勻分攤到後端的操作單元執行 二、上面那些名詞都是什麼概念 1

nginx 負載均衡叢集解決方案 healthcheck_nginx_upstreams (一)

 該文章來源於網際網路,目前找不到原作者,放在這裡的目的是記錄 的安裝過程和相關配置,在起初安裝成功後不能夠正常執行healthcheck_nginx_upstreams,後通過閱讀原始碼和除錯,能夠正常執行。 不過資訊如下: *26 no live upstreams while connec

Nginx負載均衡4種方案

nginx配置 another 服務器 nginx負載均衡 address 第一個 session 添加 後端 1、輪詢 輪詢即Round Robin,根據Nginx配置文件中的順序,依次把客戶端的Web請求分發到不同的後端服務器。 配置的例子如下:http{ up

Linux下Nginx+Resin負載均衡,session問題解決例項

                     Linux下Nginx+Resin負載均衡,session問題解決例項   轉載:http://blog.chinaunix.ne

nginx負載均衡輪循session問題解決

1.不使用session,換作cookie把session改成cookie,就能避開session的一些弊端。2.資料庫記錄session資訊使用資料庫記錄session資訊,session的使用頻率比較高,如果存在資料庫中,頻繁的讀取會對資料庫產生較大的壓力,網站效能瓶頸一

nginx負載均衡配置

war eal ade remote dock lis upstream doc 配置 http {   upstream docker {       server 192.168.88.106:10001;       server 192.168.88.1

【轉】淺談一個網頁打開的全過程(涉及DNS、CDN、Nginx負載均衡等)

位置 filters 產生 多種方法 tps windows cnblogs 這就是 廣東 1、概要   從用戶在瀏覽器輸入域名開始,到web頁面加載完畢,這是一個說復雜不復雜,說簡單不簡單的過程,下文暫且把這個過程稱作網頁加載過程。下面我將依靠自己的經驗,總結一下整個過程

BasePath問題-nginx負載均衡配置

.... class ip地址 htm post 細致 rpo 均衡 css 在配置nginx+tomcat好後。將項目加入到webapps中。發現訪問主頁時,css與js訪問不到,導致主頁布局出錯。細致分析原因後發現css與js的地址是basePath得出的。而bas

tomcat+nginx負載均衡群集

負載均衡群集線上環境Nginx+Tomcat網站拓撲架構服務器軟件要求:主機 IP地址 主要軟件 Nginx服務器192.168.1.102 nginx-1.6.0.tar.gz Tomcat1 192.168.1.100 1.jdk-7u65-linux-x64.gz 2.apache-tomcat-

Nginx負載均衡+Keepalived高可用集群

check list proxy www alived 編譯安裝nginx efi class request 一、搭建環境及軟件版本 負載均衡:Nginx 高可用:Keepalived Linux:Centos 6.5 Nginx:nginx-1.6.2 Keepaliv

tomcat+nginx負載均衡

col rec 80端口 get tom 127.0.0.1 核數 worker div 一、 工具   nginx-1.8.0   apache-tomcat-6.0.33 二、 目標   實現高性能負載均衡的Tomcat集群:    三、 步驟

nginx負載均衡簡單配置

.org star gin def lis down pes timeout install nginx負載均衡簡單配置準備三臺虛擬機來做這個實驗:172.16.160.99 web服務器172.16.160.103 web服務器172.16.160

[轉]Nginx負載均衡原理初解

sockaddr lvs 設計 ews 設備 腳本 匹配 ocl 執行權 什麽是負載均衡 我們知道單臺服務器的性能是有上限的,當流量很大時,就需要使用多臺服務器來共同提供服務,這就是所謂的集群。 負載均衡服務器,就是用來把經過它的流量,按照某種方法,分配到集群中的

httpd或Nginx負載均衡tomcat

direct 技術分享 reads thread table com reserve edi install 實驗環境:CentOS7 #兩臺tomcat的基本配置如下: [[email protected]/* */ localhost]#setenforc

Nginx負載均衡配置實例詳解

負載均衡 命令 成功 介紹 nginx 重啟nginx 不能 測試 forward [導讀] 負載均衡是我們大流量網站要做的一個東西,下面我來給大家介紹在Nginx服務器上進行負載均衡配置方法,希望對有需要的同學有所幫助哦。負載均衡先來簡單了解一下什麽是負載均衡,

LNMP-Nginx負載均衡

nginx1、獲取網站IP地址[[email protected]/* */ ~]# yum install -y bind-utils ##安裝dig命令 [[email protected]/* */ ~]# dig baidu.com ; <<>> Di