ubuntu22 搭建nginx高可用集群(VIP(keepalived) + 負載均衡)

#在所有節點安裝nginx

#ps: 如果要使用tcp流轉發:需用二進制包安裝 make編譯時加入stream流的參數。 ?推薦直接安裝openresty【默認支持stream等nginx模塊,還附帶了很多常用的lua庫】
?

apt install -y net-tools
sudo apt install -y nginx
vim /etc/nginx/conf.d/nginx.conf
upstream balanceServer {# 服務器的訪問地址,負載均衡算法使用權重輪詢。應用服務器是自己的應用服務主機的地址,最好和負載均衡服務分開部署。server 10.3.1.135:8080 weight=1;
}
#負載均衡服務
server {# 負載均衡的監聽端口listen 80 default_server;server_name _;location / {proxy_pass http://balanceServer;   # 代理轉發應用服務client_max_body_size 500m;}location /prod-api/ {proxy_pass http://balanceServer;   # 代理轉發應用服務proxy_cookie_path / /prod-api;rewrite ^/prod-api/(.*) /$1 break;client_max_body_size 500m;}}

#nginx服務默認占用80 ?修改默認端口為81

vim /etc/nginx/sites-enabled/default 
listen 81 default_server;
listen [::]:81 default_server;

nginx -s reload #systemctl restart nginx

systemctl enable nginx

#在所有節點安裝keepalived 并修改配置文件(不同節點參數需修改)

apt install -y keepalived

vim /etc/keepalived/keepalived.conf

global_defs { # 路由id: 當前安裝的keepalived節點主機的標識符,全局唯一。 # 不同節點需修改 用本機ip即可router_id 10.3.1.96
}
vrrp_script chk_nginx {script "/etc/keepalived/nginx_chk.sh"  interval 2  
}
vrrp_instance VI_1{# 表示的狀態,MASTER 主節點  BACKUP 備機# 一個設為MASTER 其他的設為BACKUPstate MASTER# 當前實例綁定的網卡 根據主機網卡自行修改interface ens160# 表示那些服務器一個組,保證主備節點一致virtual_router_id 100# 優先級/權重,誰的優先級高,在MASTER關掉以后,就能成為MASTERpriority 100# 主備之間同步檢查的時間間隔,默認1sadvert_int 1# 認知授權的密碼,防止非法節點的進入authentication {auth_type PASSauth_pass 1369}#  虛擬ip 要和服務器在同一個網段, 能和服務器網關進行通信的, 而且是沒有被占用的virtual_ipaddress {10.3.1.150}track_script {   chk_nginx}
}

vim /etc/keepalived/nginx_chk.sh #配置腳本檢查nginx是否還在正常運行,如果掛掉就重啟它,實在啟動不了再讓keepalived綁定備用機器

#!/bin/bash
A=`ps -C nginx --no-header |wc -l`
# 判斷nginx是否宕機,如果宕機了,嘗試重啟 
if [ $A -eq 0 ];then# 重啟nginx,延遲2秒 service nginx restartsleep 2  # 重新檢查是否有nginx相關的進程if [ $A -eq 0 ];then  # 仍然沒有nginx相關的進程,殺死當前keepalived,切換到備用機killall keepalived  fi  
fi

sudo chmod +x /etc/keepalived/nginx_chk.sh

bash /etc/keepalived/nginx_chk.sh #檢查腳本,不報錯即可‘

systemctl start keepalived

ip addr #查看ens160網卡出現 10.3.1.150虛擬ip即可。 然后可以通過虛擬ip訪問對應的nginx轉發

systemctl enable keepalived

#關掉MASTER的keepalived后,虛擬ip就飄移到BACKUP節點上了 可以用ip addr查看一下

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/19636.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/19636.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/19636.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

恒創科技:無法與服務器建立安全連接怎么解決?

在使用互聯網服務時,有時會出現無法與服務器建立安全連接的問題,此錯誤消息通常出現在嘗試訪問需要安全連接的網站(例如使用 HTTPS 的網站)時,這可能是由于多種原因造成的,以下是一些常見的解決方法,幫助你解決問題。 …

聚道云軟件連接器:打通易快報與保融資金系統,實現高效財務管理

一、客戶介紹:食品企業,引領健康零食新風尚 某食品行業的公司作為國內領先的集研發、生產、銷售為一體的現代化辣味休閑食品企業。該公司秉承“健康、美味、安全”的理念,不斷創新和進取,為消費者帶來了一系列美味可口的辣味休閑…

msvcp100.dll丟失怎樣修復?幾種快速有效修復msvcp100.dll丟失的方法

在使用電腦時是不是遇到過關于msvcp100.dll丟失文件丟失的情況?出現這樣的情況有什么辦法可以將丟失的msvcp100.dll文件快速恢復?今天的這篇文章就將教大家幾種能夠有效的解決msvcp100.dll丟失問題的方法。 方法一:重啟電腦 重啟電腦是一種簡…

參數高效微調PEFT(三)快速入門LoRA、AdaLoRA

參數高效微調PEFT(三)快速入門LoRA、AdaLoRA 我們已經了解了HuggingFace中peft庫的幾種高效微調方法。 參數高效微調PEFT(一)快速入門BitFit、Prompt Tuning、Prefix Tuning 參數高效微調PEFT(二)快速入門P-Tuning、P-Tuning V2 今天我們繼續了解大火的高效微調方法LoRA以及…

MyBatis基礎理解教程,詳細分步基礎查詢表數據練習(通俗易懂、實時更新)

一、MyBatis是什么 MyBatis 是一個持久層框架,簡化JDBC開發,它提供了一個從 Java 應用程序到 SQL 數據庫的橋梁,用于數據的存儲、檢索和映射。MyBatis 支持基本的 SQL 操作、高級映射特性以及與 Maven 等構建工具的集成。 二、持久層是什么…

IDEA增加.gitignore文件后的處理

IDEA增加 .gitignore 文件后,但還是被 git 跟蹤了。 我的文件已經被添加到 .gitignore 中,但仍然被 Git 跟蹤, 文件被修改后commint中就會存在此文件。 原因: 文件已經被提交過了 如果文件在添加到 .gitignore 之前已經被提交到 Git 倉庫中,…

Spring boot集成通義千問大模型

Spring boot集成通義千問大模型 背景 我在用idea進行java開發時發現了通義靈碼這款免費的智能代碼補全插件,用了一段時間了,感覺很不錯。就想著在自己的項目中也能集成通義千問大模型實現智能回答,畢竟對接openai需要解決網絡問題&#xff…

戰略合作 | 竹云賦能雁塔區數字經濟高質量發展

2024年5月30日,由西安市數據局指導,中共西安市雁塔區委、西安市雁塔區人民政府主辦的 “雁塔區企業數字化轉型發展大會” 在西安開幕。 本次活動以“數智雁塔,引領未來”為主題,特邀業內150余位政府、數字化服務企業、傳統行業企…

Kubernetes 之 DaemonSet 基本原理

Kubernetes 之 DaemonSet 基本原理 DaemonSet 定義 DaemonSet 確保全部(或者某些)節點上運行一個 Pod 的副本。 當有節點加入集群時, 也會為他們新增一個 Pod 。 當有節點從集群移除時,這些 Pod 也會被回收。刪除 DaemonSet 將會…

先導微型數控桌面式加工中心

隨著數控技術、傳感器技術、人工智能等技術的不斷發展,制造業的快速發展和技術的不斷進步,小型五軸加工中心的性能將不斷提升,五軸聯動技術作為解決異性復雜零件高效優質加工問題的重要手段,使其具有更廣泛的應用前景。小型五軸加…

【啟明智顯分享】國產自主ZX7981P Wi-Fi6 5G-CPE開發板有哪些優勢?

在當前競爭激烈的智能設備市場中,高性能與低功耗的開發板已然成為各大產品追求的關鍵優勢。 今天我們從國產自主研發的ZX7981P Wi-Fi6 5G-CPE開發板的特點出發,分析他是否滿足市場追求的特點。 主要特點: 1. 強大配置,穩定可靠 …

5.30 學習總

刷題記錄(Codeforces Round 947 (Div. 1 Div. 2)B,C題)和Codeforces Round 948 (Div. 2)B題 一.B. 378QAQ and Mochas Array B. 378QAQ and Mochas Array time limit per test 1 second memory limit per test 256 megabytes in…

長難句5.30

Researchers measured people’s cortisol, which is a stress marker, while they were at work and while they were at home and found it higher at what is supposed to be a place of refuge. 研究人員測量了人們在工作中和在家里的皮質醇(壓力的一種標志),結…

在 JavaScript 中循環遍歷數組的多種方法

在JavaScript編程中,遍歷數組是一個非常常見的操作。根據不同的需求和JavaScript的不同版本,我們有多種方法來完成這一操作。本文將介紹幾種有效的方法,包括現代的和傳統的方式,同時分析每一種方法的優缺點。 1. 使用 for...of 語法 for...of 是在 ECMAScript 2015(ES6)…

Spring Boot集成statemachine快速入門demo

1.什么是statemachine? Spring Statemachine 是應用程序開發人員在 Spring 應用程序中使用狀態機概念的框架,從設計層面分析:狀態機目的是解決復雜的狀態管理流程,保證程序單一原則和開閉原則;業務角度分析&#xff1…

【面試】什么是Java虛擬機

目錄 1. 說明2. 關鍵點 1. 說明 1.Java虛擬機(Java Virtual Machine,簡稱JVM)是運行所有Java程序的抽象計算機,是Java語言的運行環境。2.JVM是Java平臺無關性的關鍵,它允許Java程序在任何支持JVM的硬件和操作系統上運…

【大數據面試題】34 手寫一個 Flink SQL 樣例

一步一個腳印,一天一道大數據面試題 博主希望能夠得到大家的點贊收,藏支持!非常感謝~ 點贊,收藏是情分,不點是本分。祝你身體健康,事事順心! 我們來看看 Flink SQL大概流程和樣例: 流程: 1.創建 流處理環境 StreamExecutionEnvironment env 2.創建 表環境 StreamTab…

為啥裝了erlang,還報錯erl: command not found?

轉載說明:如果您喜歡這篇文章并打算轉載它,請私信作者取得授權。感謝您喜愛本文,請文明轉載,謝謝。 問題背景: 在一臺不通外網的服務器上裝rabbitmq,然后在啟動的時候,遇到了報錯 “/usr/lib/…

C#中使用Mapster

Mapster是一個開源的.NET對象映射庫,它提供了一種簡單而強大的方式來處理對象之間的映射。 多個映射框架的性能對比: 第一步安裝Mapster 使用方法 public class Test {public string name { get; set; }public string sex { get; set; }public string…

C語言數據結構(超詳細講解)| 二叉樹的實現

二叉樹 引言 在計算機科學中,數據結構是算法設計的基石,而二叉樹(Binary Tree)作為一種基礎且廣泛應用的數據結構,具有重要的地位。無論是在數據庫索引、內存管理,還是在編譯器實現中,二叉樹都…