日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

nginx+keepalived搭建主从负载均衡并迅速切换

發布時間:2023/12/15 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 nginx+keepalived搭建主从负载均衡并迅速切换 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ? ? ??大家都聽說過主從服務器或者負載均衡之類的專業術語,作為衡量一個中高級運維工程師的標準,集群和負載是運維工程師必須掌握的技術,然而在一家小公司是根本不會體會到運維的重要性的。首先從理論上講一下,當用戶量和訪問量達到一定級別的時候,服務器達到負載,瀏覽器或者客戶端響應比較慢的時候除了優化代碼外,還可以搭建一個負載均衡的系統,給每個服務器分發相應的請求來滿足平臺的性能。

? ? ? ?首先準備三臺 linux 服務器,一臺安裝nginx做反向代理,另外兩臺分別為主、從服務器,按步驟來:

1、先去安裝 nginx :

? ? ? ?到?https://nginx.org/download/?去下載腳本安裝,或者直接運行命令下載:

wget https://nginx.org/download/nginx-1.12.2.tar.gz

? ? ? ?我下載的是 nginx-1.12.2 這個版本,后面的 nginx 都是這個版本的。

然后解壓進入目錄編譯安裝:

tar -zxvf nginx-1.12.2.tar.gz cd nginx-1.12.2/ ./configure \ --prefix=/usr/local/nginx \ --pid-path=/var/run/nginx/nginx.pid \ --lock-path=/var/lock/nginx.lock \ --error-log-path=/var/log/nginx/error.log \ --http-log-path=/var/log/nginx/access.log \ --with-http_gzip_static_module \ --http-client-body-temp-path=/var/temp/nginx/client \ --http-proxy-temp-path=/var/temp/nginx/proxy \ --http-fastcgi-temp-path=/var/temp/nginx/fastcgi \ --http-uwsgi-temp-path=/var/temp/nginx/uwsgi \ --with-http_stub_status_module \ --with-http_ssl_module \ --http-scgi-temp-path=/var/temp/nginx/scgi make && make install

啟動nginx:

cd /usr/local/nginx/sbin/ ./nginx

啟動成功!

接下來搭建負載均衡:

先簡單介紹一下負載均衡:

負載均衡 建立在現有網絡結構之上,它提供了一種廉價有效透明的方法擴展網絡設備和服務器的帶寬、增加吞吐量、加強網絡數據處理能力、提高網絡的靈活性和可用性。?
負載均衡,英文名稱為Load Balance,其意思就是分攤到多個操作單元上進行執行,例如Web服務器、企業關鍵應用服務器和其它關鍵任務服務器等,從而共同完成工作任務。

nginx作為負載均衡服務器,用戶請求先到達nginx,再由nginx根據負載配置將請求轉發至其他服務器。?
nginx負載均衡服務器:?172.31.8.217 ? ? ? ? ? ?nginx負載均衡備用服務器:172.31.8.218
應用服務器1:172.26.255.56
應用服務器2:172.26.255.57

配置nginx.conf

cd /usr/local/nginx/conf/ vi nginx.confupstream mytomcat{server 172.26.255.56:80 weight=1;server 172.26.255.57:80 weight=1; } server {listen 80 default_server;#listen [::]:80 default_server;#server_name _;root /usr/share/nginx/html;# Load configuration files for the default server block.include /etc/nginx/default.d/*.conf;location / {proxy_pass http://mytomcat;}error_page 404 /404.html;location = /40x.html {}error_page 500 502 503 504 /50x.html;location = /50x.html {} }

測試一下,這個時候訪問?172.31.8.217 就會路由到另外兩臺服務器上,這樣一個簡單的負載均衡服務器就搭建好了。

接下來把 keepalived 用上,安裝 keeplived 主備都安裝:

yum install -y keepalived

master上的keepalived.conf內容如下:

global_defs {notification_email {1027577992@qq.com}notification_email_from sns-lvs@gmail.comsmtp_server localhostsmtp_connection_timeout 30router_id nginx_master # 設置nginx master的id,在一個網絡應該是唯一的 } vrrp_script chk_http_port {script "/usr/local/src/check_nginx_pid.sh" #手動執行下此腳本,以確保此腳本能夠正常執行interval 2 #(檢測腳本執行的間隔,單位是秒)weight 2 } vrrp_instance VI_1 {state MASTER # 指定keepalived的角色,MASTER為主,BACKUP為備interface eth0 # 當前進行vrrp通訊的網絡接口卡(當前centos的網卡)virtual_router_id 66 # 虛擬路由編號,主從要一直priority 100 # 優先級,數值越大,獲取處理請求的優先級越高advert_int 1 # 檢查間隔,默認為1s(vrrp組播周期秒數)authentication {auth_type PASSauth_pass 1111}track_script {chk_http_port #(調用檢測腳本)}virtual_ipaddress {47.105.66.202 # 定義虛擬ip(VIP),可多設,每行一個} }

backup上的keepalived.conf內容如下:

global_defs {notification_email {1027577992@qq.com}notification_email_from sns-lvs@gmail.comsmtp_server localhostsmtp_connection_timeout 30router_id nginx_backup # 設置nginx backup的id,在一個網絡應該是唯一的 } vrrp_script chk_http_port {script "/usr/local/src/check_nginx_pid.sh"interval 2 #(檢測腳本執行的間隔)weight 2 } vrrp_instance VI_1 {state BACKUP # 指定keepalived的角色,MASTER為主,BACKUP為備interface eth0 # 當前進行vrrp通訊的網絡接口卡(當前centos的網卡)virtual_router_id 66 # 虛擬路由編號,主從要一直priority 99 # 優先級,數值越大,獲取處理請求的優先級越高advert_int 1 # 檢查間隔,默認為1s(vrrp組播周期秒數)authentication {auth_type PASSauth_pass 1111}track_script {chk_http_port #(調用檢測腳本)}virtual_ipaddress {47.105.66.202 # 定義虛擬ip(VIP),可多設,每行一個} }

nginx檢測腳本check_nginx_pid.sh內容如下:

#!/bin/bash A=`ps -C nginx --no-header |wc -l` if [ $A -eq 0 ];then /usr/local/nginx/sbin/nginx #重啟nginxif [ `ps -C nginx --no-header |wc -l` -eq 0 ];then #nginx重啟失敗exit 1elseexit 0fi elseexit 0 fi

啟動keepalived:

service keepalived start

訪問VIP,然后去看 keepalived 的日志 ,當我們把 master 上的 keepalived 停掉(模擬宕機),再來看下 keepalived 日志 ,通過VIP可以正常訪問服務,前端請求感受不到后端nginx的切換。這樣就完成了一個負載均衡、主從熱備的高可用的服務器架構了。

總結

以上是生活随笔為你收集整理的nginx+keepalived搭建主从负载均衡并迅速切换的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。