1. 程式人生 > >nginx 負載均衡器和高可用

nginx 負載均衡器和高可用

Nginx

Nginx (engine x) 是一個高效能的HTTP反向代理伺服器,也是一個IMAP/POP3/SMTP伺服器。Nginx

Nginx 是一個很強大的高效能Web反向代理伺服器,它具有很多非常優越的特性:

在連線高併發的情況下,Nginx是Apache伺服器不錯的替代品:Nginx在美國是做虛擬主機生意的老闆們經常選擇的軟體平臺之一。能夠支援高達 50,000 個併發連線數的響應,感謝Nginx為我們選擇了 epoll and kqueue作為開發模型。

Nginx作為負載均衡伺服器:Nginx 既可以在內部直接支援 Rails 和 PHP 程式對外進行服務,也可以支援作為 HTTP代理伺服器

對外進行服務。Nginx採用C進行編寫,不論是系統資源開銷還是CPU使用效率都比 Perlbal 要好很多。

處理靜態檔案,索引檔案以及自動索引;開啟檔案描述符緩衝。無快取的反向代理加速,簡單的負載均衡和容錯。

代理伺服器

作為郵件代理伺服器:Nginx 同時也是一個非常優秀的郵件代理伺服器(最早開發這個產品的目的之一也是作為郵件代理伺服器),Last.fm 描述了成功並且美妙的使用經驗。

Nginx 是一個安裝非常的簡單、配置檔案非常簡潔(還能夠支援perl語法)、Bug非常少的伺服器。Nginx 啟動特別容易,並且幾乎可以做到7*24不間斷執行,即使執行數個月也不需要重新啟動。你還能夠不間斷服務的情況下進行軟體版本的

升級

 一、安裝部署

1)下載解壓

tar zxf nginx-1.10.1.tar.gz

2)進行原碼安裝 

Vim /mnt/nginx-1.10.1/auto/cc/gcc #設定安裝元件

./configure--prefix=/usr/local/nginx--with-http_ssl_module--with-http_stub_status_module  #安裝檢查

yum install -y pcre-devel zlib-devel  #CFLAGS="$CFLAGS -g" 行註釋掉

./configure--prefix=/usr/local/nginx--with-http_ssl_module--with-http_stub_status_module          

 make

make install

cd /usr/local/nginx/sbin

./nginx      #執行指令碼開啟服務

測試


useradd -u 800 nginx 新增nginx賬戶

 

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ #對目錄進行軟連線

nginx -s reload  #重新載入nginx

 vim /etc/security/limits.conf

 

vim /usr/local/nginx/conf/nginx.conf  #修該配置檔案

server {

       listen       443 ssl;

       server_name  localhost;

      ssl_certificate      cert.pem;

       ssl_certificate_key  cert.pem;  #自己製作的證書名 

       ssl_session_cache    shared:SSL:1m;

       ssl_session_timeout  5m;

       ssl_ciphers  HIGH:!aNULL:!MD5;

       ssl_prefer_server_ciphers  on;

       location / {

           root   html;

           index  index.html index.htm;

       }

   }

製作證書

[[email protected] sbin]# cd /etc/pki/tls/certs/  

[[email protected] certs]# make cert.pem    

 

[[email protected] certs]# mv cert.pem /usr/local/nginx/conf/

[[email protected] certs]# nginx -s reload

 

sendfile        on;   

tcp_nopush     on;  #連線超時

tcp_nodelay    on;  #降低網路延時

新增監控模組

location /status{               

                   stub_status on;    

                   access_log off;    #監控

                   allow 172.25.50.250; #訪問名單,此時只有250主機可以訪問

                        deny all;

        }


server {

        listen 80;

        server_name www.westos.org;

        location /{

                root /www1;        #預設釋出目錄

                index index.html;   #預設釋出檔案

                 }

        }

[[email protected] certs]# nginx -s reload

[[email protected] certs]# mkdir /www1

[[email protected] certs]# cd /www1/

[[email protected] www1]# vim index.html

[[email protected] www1]# cat index.html 

<hi> westos.server1</hi>

[[email protected] www1]# 


設定虛擬主機

server {

        listen 80;

        server_name bbs.westos.org;

        location /{

                root /www2;

                index index.html;

                }

        }

[[email protected] www1]# mkdir /www2

[[email protected] www1]# vim /www2/index.html

[[email protected] www1]# cat /www2/index.html 

<hi>bbs.westos.com<hi/>


server {

        listen 80;

        server_name www.westos.org;

        location /{

                #root /www1;       

                #index index.html;

                proxy_pass http://westos;  #排程

        }

  }

http {

        upstream westos {               #排程地址

                server 172.25.50.2:80 ;  

                server 172.25.50.3:80 ;  

        }

    include       mime.types;

    default_type  application/octet-stream;

 

http {

        upstream westos {               #排程地址

                server 172.25.50.2:80 weight=2; 加權重

                server 172.25.50.3:80 ;  

        }

 

http {

        upstream westos {               #排程地址

                server 172.25.50.2:80 ;  

                server 172.25.50.3:80 backup; 作備用

        }

     Server2 http 服務關閉時


nginx 可用

開啟新的虛擬機器server4,將server1/usr/local/nginx 遠端複製給server4/usr/local/nginx 

[[email protected] nginx]# scp -r * [email protected]:/usr/local/nginx/

[[email protected] nginx]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

[[email protected] nginx]# useradd -u 800 nginx

server1server4上同時執行下面操作

yum install -y ricci

 passwd ricci   #設定ricci 密碼,兩臺必須密碼一致

/etc/init.d/ricci restart

chkconfig ricci on

server1

yum install  -y luci #server1 上安裝luci管理軟體

 [[email protected] ~]# /etc/init.d/luci start  #啟動

chkconfig luci on                          #設定開機自啟動

[[email protected] ~]# /etc/init.d/luci start

Start luci...                                              [確定]

Point your web browser to https://server1:8084 (or equivalent) to access luci

[[email protected] ~]# 

在瀏覽器中輸入生成的網址進行配置


 

新增要管理叢集


 

在物理主機上安裝fence 軟體

yum install fence-virtd.x86_64 -y

yum install -y fence-virtd-multicast.x86_64

yum install -y fence-virtd-libvirt.x86_64

fence_virtd -c    #建立fence 

 

[[email protected] usr]# mkdir /etc/cluster/

[[email protected] usr]# cd /etc/cluster/

dd if=/dev/urandom of=/etc/cluster/fence_xvm.key bs=128 count=1  #製作鑰匙

scp fence_xvm.key [email protected]:/etc/cluster/        #將鑰匙分發給server1和server4

scp fence_xvm.key [email protected]:/etc/cluster/

在管理主機server1上測試fence效果

[[email protected] cluster]# fence_node server4

fence server4 success


在網頁圖形介面新增叢集管理

新增fence

 

新增uuid


設定權重


 scp nginx server4:/etc/init.d/   #將啟動指令碼分發給server1server4

在圖形介面新增啟動指令碼

 設定ip


測試:

此時,服務在server4上執行

 

server4上輸入[[email protected] ~]# echo c > /proc/sysrq-trigger # 故意讓系統崩潰

此時,服務轉移到server1執行,server4重新啟動,從而實現高可用

相關推薦

nginx 負載衡器可用

Nginx Nginx (engine x) 是一個高效能的HTTP和反向代理伺服器,也是一個IMAP/POP3/SMTP伺服器。Nginx Nginx 是一個很強大的高效能Web和反向代理伺服器,它具有很多非常優越的特性: 在連線高併發的情況下,Nginx是Apache伺

負載衡器HAProxy,可用集群keepalived,keepalived+lvs

BE ID log var def fall 集群 sad 查看 負載均衡器:nginx/haproxy/lvs/F5代理:正向代理:幫助客戶端緩存服務器上的數據反向代理:幫助服務器緩存數據 HAProxy:1、安裝[root@vh04 bin]# yum install

linux下 使用keepalived 實現nginx 負載均衡+主備可用

1.什麼是負載均衡高可用         nginx作為負載均衡器,所有請求都到了nginx,可見nginx處於非常重點的位置,如果nginx伺服器宕機後端web服務將無法提供服務,影響嚴重。   

Nginx負載均衡配置+keepalived可用

1.什麼是負載均衡?隨著應用各個核心模組業務量的提高,訪問量和資料流量的快速增長,其處理能力和計算強度也相應地增大,使得單一的伺服器裝置根本無法承擔。在此情況下,如果扔掉現有裝置去做大量的硬體升級,這樣將造成現有資源的浪費,而且如果再面臨下一次業務量的提升時,這又將導致再一次硬體升級的高額成本投入,甚至效能再

AWS的自動部署工具codedeploy 負載衡器github

Elastic Load Balancing 提供了三種可用於 CodeDeploy 部署的負載均衡器:Classic Load

keepalived可用負載衡器

實現 sbin port iptables for epel源 物理 tcp協議 root 一、集群相關概念簡述 HA是High Available縮寫,是雙機集群系統簡稱,指高可用性集群,是保證業務連續性的有效解決方案,一般有兩個或兩個以上的節點,且分為活動節點及備用節點

負載衡器技術NginxF5的優缺點對比

對於資料流量過大的網路中,往往單一裝置無法承擔,需要多臺裝置進行資料分流,而負載均衡器就是用來將資料分流到多臺裝置的一個轉發器。 目前有許多不同的負載均衡技術用以滿足不同的應用需求,如軟/硬體負載均衡、本地/全域性負載均衡、更高網路層負載均衡,以及鏈路聚合技術

負載衡器部署方式工作原理

硬件負載均衡 f5設備概述負載均衡(Load Balance)由於目前現有網絡的各個核心部分隨著業務量的提高,訪問量和數據流量的快速增長,其處理能力和計算強度也相應地增大,使得單一的服務器設備根本無法承擔。在此情況下,如果扔掉現有設備去做大量的硬件升級,這樣將造成現有資源的浪費,而且如果再面臨下一次業務量的提

公司nginx keepalived tomcat cxf 搭建可用負載均衡實戰系列1- keepalived安裝配置

技術分享 cnblogs start ges idt def auth div .cn 1,ip說明 vip 10.50.13.67 server1 10.50.13.68 server2 10.50.13.140 2

LVS負載衡器NATDR工作模式詳解

lvs 在試驗之前為了更好理解設置的參數,所以先講解一下命令。 一、lvs配置文件和命令: 程序包:ipvsadm(LVS管理工具) 配置文件:/etc/sysconfig/ipvsadm-config 【rpm -ql ipvsadm 查詢包的具體列表】 -A 在服務器列表中新添加一條新的虛擬服務

用haproxy結合keepalived實現基於LNMP的負載均衡可用

lnmp的負載均衡以及高可用今天我們講haproxy結合keepalived實現LNMP的負載均衡和高可用,現在的公司大部分都基於haproxy實現負載均衡。下面以一個事例去給大家詳細講解如何去實現:一、用haproxy結合keepalived實現基於lnmp的負載均衡和高可用服務,要求: (1)實現動

三大主流軟件負載衡器對比(LVS、Nginx、HAproxy)

LVS、Nginx HAproxy LVS: 1. 抗負載能力強,性能高,能達到F5的60%,對內存和CPU資源消耗比較低 2. 工作在網絡4層,通過VRRP協議(僅作代理之用),具體的流量是由linux內核來處理,因此沒有流量的產生。 3. 穩定,可靠性高,自身有完美的熱備方案(K

DR+keepalived實現web群集的負載均衡可用

Lvs-DR keepalived 我們搭建好的Lvs-DR群集是有一臺lvs調度器的,生產環境中如果調度器出現故障,整個群集將癱瘓。通過keepalived做lvs調度器的雙機熱備就可以很好的解決這個問題。keepalived采用VRRP虛擬路由冗余協議,以軟件的方式實現Linux服務器的多機熱備功

SaltStack一鍵部署負載均衡可用

一、負載均衡的部署 server1    haproxy (排程器) server2    nginx server3    apache 1)在server1上首先安裝salt-minion服務。並把自身新增在節點中(交換金鑰) 2)啟動serv

使用nginx作為HTTP負載衡器

跨多個應用程式例項的負載平衡是一種常用技術,用於優化資源利用率,最大化吞吐量,減少延遲並確保容錯配置。 可以使用nginx作為非常有效的HTTP負載平衡器,將流量分配到多個應用程式伺服器,並使用nginx提高Web應用程式的效能,可伸縮性和可靠性。 負載均衡方法 nginx支援以下負載平

理解OpenShift(1):網路之 Router Route Neutron 理解 (7): Neutron 是如何實現負載衡器虛擬化的

 理解OpenShift(1):網路之Router 和 Route   1. OpenShift 為什麼需要 Router 和 Route? 顧名思義,Router 是路由器,Route 是路由器中配置的路由。OpenShift 中的這兩個概念是為了解決從叢集外部(就是從除了叢集節點

使用Mycat實現Mysql資料庫的主從複製、讀寫分離、分表分庫、負載均衡可用

Mysql叢集搭建 使用Mycat實現Mysql資料庫的主從複製、讀寫分離、分表分庫、負載均衡和高可用(Haproxy+keepalived),總體架構:   說明:資料庫的訪問通過keepalived的虛擬IP訪問HAProxy負載均衡器,實現HAProxy的高可用,HAProxy用於實

Ceph RGW負載均衡可用配置

配置主要參考 (配置負載均衡有多種方法,這裡是使用keepalived 用於高可用,haproxy 用於負載均衡) 注意:負載均衡節點不能與任何RGW節點重合。 架構示意圖如下: 我的三個RGW分別為 R3S25:172.16.50.25 R3S4

RHCS叢集中nginx下的負載均衡,及可用

一 RHCS叢集管理介紹 叢集管理器CMAN Cluster Manager,簡稱CMAN,是一個分散式叢集管理工具,它執行在叢集的各個節點上,為RHCS提供叢集管理任務。CMAN用於管理叢集成員、傳遞節點間心跳資訊。它通過監控每個節點的執行狀態來了解節點成員

F5-負載衡器 四層七層負載均衡的區別

簡單理解四層和七層負載均衡:   ① 所謂四層就是基於IP+埠的負載均衡;七層就是基於URL等應用層資訊的負載均衡;同理,還有基於MAC地址的二層負載均衡和基於IP地址的三層負載均衡。 換句換說,二層負載均衡會通過一個虛擬MAC地址接收請求,然後再分配到真實的MAC地址;三