haproxy搭建nginx網站訪問

文章目錄

  • 一.案例概述
    • 2.1 HTTP請求
    • 2.2 負載均衡常用調度算法
      • ①RR(Round robin)
      • ②LC(least connections)
      • ③SH(source hashing)
    • 2.3 常見的web群集調度器
    • 3.實驗環境
  • 二.實驗步驟
    • 1.兩臺web網站步驟相同 安裝web服務(nginx,apache)
      • ①安裝web網站
      • ②在網頁目錄創建網站
    • 2.haproxy服務器配置
      • ①安裝haproxy
      • ②修改配置文件
    • 3.測試web集群
      • 4.haproxy日志文件
      • ①修改haproxy配置文件 將原有日志配置修改
      • ②配置rsyslog服務
      • 查看日志文件是否生成查看客戶端真實IP

一.案例概述

**proxy是目前比較流行的一種群集調度工具,同類群集調度工具有很多,
如LVS和Nginx。相比較而言,LVS性能最好,但是搭建相對復雜;Nginx的
upstream模塊支持群集功能,但是對群集節點健康檢查功能不強,高并發性能
沒有Haproxy好。Haproxy官方網站是http://www.haproxy.org/。

2.1 HTTP請求

通過URL訪問網站使用的協議是HTTP協議,此類請求一般稱為HTTP/請
求。HTTP請求的方式分為GET方式和POST方式。當使用瀏覽器訪問某一個
URL,會根據請求URL返回狀態碼,通常正常的狀態碼為2XX、3XX(如200、
301),如果出現異常會返回4XX、5XX(如400、500)。

2.2 負載均衡常用調度算法

調度算法有三種

①RR(Round robin)

RR算法是最簡單最常用的一種算法,即輪詢調度。
例如,有三個節點A、B、C,第一個用戶訪問會被指派到節點A,第二個用戶訪
問會被指派到節點B,第三個用戶訪問會被指派到節點C,第四個用戶訪問繼續
指派到節點A,輪詢分配訪問請求實現負載均衡效果。此算法還有一種加權輪詢,
即根據每個節點的權重輪詢分配訪問請求。

②LC(least connections)

LC算法即最小連接數算法,根據后端的節點
連接數大
小動態分配前端請求。例如,有三個節點A、B、C,各節點的連接數分別為A:
4、B:5、C:
6,此時如果有第一個用戶連接請求,會被指派到A上,連接數變為A:5、B:
5、C:6;第二個用戶請求會繼續分配到A上,連接數變為A:6、B:5、C:6;
再有新的請求會分配給B,每次將新的請求指派給連接數最小的客戶端。由于實
際情況下A、B、C的連接數會動態釋放,很難會出現一樣連接數的情況,因此
此算法相比較rr算法有很大改進,是目前用到比較多的一種算法。

③SH(source hashing)

SH即基于來源訪問調度算法,此算法用于一些有
Session會話記錄在服務器端的場景,可以基于來源的IP、Cookie等做群集調
度。例如,使用基于源IP的群集調度算法,有三個節點A、B、C,第一個用戶
第一次訪問被指派到了A,第二個用戶第一次訪問被指派到了B,當第一個用戶
第二次訪問時會被繼續指派到A,第二個用戶第二次訪問時依舊會被指派到B,
只要負載均衡調度器不重啟,第一個用戶訪問都會被指派到A,第二個用戶訪問
都會被指派到B,實現群集的調度。此調度算法好處是實現會話保持,但某些IP
訪問量非常大時會引起負載不均衡,部分節點訪問量超大,影響業務使用。

2.3 常見的web群集調度器

目前,常見的Web群集調度器分為軟件和硬件。軟件通常使用開源的LyS、
Haproxy、Nginx,硬件一般使用比較多的是F5。也有很多人使用國內的一些產
品,如梭子魚、綠盟等

3.實驗環境

在這里插入圖片描述

haproxy是192.168.10.101
web1網站:192.168.10.102
web2網站:192.168.10.103

實驗前關閉防火墻與selinux機制或者添加防火墻策略

二.實驗步驟

1.兩臺web網站步驟相同 安裝web服務(nginx,apache)

①安裝web網站

在這里插入圖片描述

②在網頁目錄創建網站

在這里插入圖片描述

2.haproxy服務器配置

①安裝haproxy

在這里插入圖片描述

②修改配置文件

在這里插入圖片描述

Haproxy配置項介紹:
Haproxy配置文件通常分為三個部分,即global、defaults和listen。
global為全局配置,defaults為默認配置,listen為應用組件配置。

在這里插入圖片描述
這是全局項
log #配置日志文件記錄,local2為日志設備,默認存放到系統日志
maxconn #最大連接數
user #程序用戶
group #程序組

在這里插入圖片描述

defaults配置項配置默認參數,一般會被應用組件繼承,如果在應用組件
中沒有特別聲明,將按照默認配置參數設置。

在這里插入圖片描述
listen配置項是配置應用模塊參數
在這里插入圖片描述
listen webcluster
//定義一個appli4-backup的應用
bind 0.0.0.0:80
//監聽所有網卡的80端口
option httpchk GET /index. html
//通過GET/index.html檢查服務器
建康狀態
balanceroundrobin//負載均衡調度算法使用輪詢算法
serverinst1 192.168.10.101:80checkinter2000fall3 //后端服務
器1,每2秒檢查一次,3次失敗后下線
server inst2 192.168.10.102:80 check inter 2000 fall 3

3.測試web集群

通過代理服務器調度到后端服務器
通過上面的步驟,已經搭建完成Haproxy的Web群集,接下來需要驗證群
集是否工作正常。一個群集一般需要具備兩個特性,第一個是高性能,第二個是
高可用

在這里插入圖片描述
查詢http日志文件查看是否是代理服務器訪問網站
在這里插入圖片描述

4.haproxy日志文件

Haproxy的日志默認輸出到系統的syslog中,查看起來不是非常方便,為
了更好地管理Haproxy的日志,在生產環境中一般單獨定義出來

①修改haproxy配置文件 將原有日志配置修改

在這里插入圖片描述

②配置rsyslog服務

創建rsyslog的haproxy日志文件規則

在這里插入圖片描述

查看日志文件是否生成查看客戶端真實IP

在這里插入圖片描述

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

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

相關文章

進程間通信之socketpair

進程間通信之socketpair 源代碼 #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <sys/types.h> #include <sys/socket.h> #include <sys/wait.h>int main() {//父子通訊管道int m_pipe[2];//創建管道if(socketpa…

跟著AI學習C# Day29

&#x1f4c5; Day 29&#xff1a;C# 綜合進階知識回顧與職業發展建議 ? 學習目標&#xff1a; 回顧 C# 進階學習路徑&#xff1b;總結核心知識點&#xff0c;構建完整的技能體系&#xff1b;理解 C# 高級開發者應具備的核心能力&#xff1b;探索 C# 在不同技術領域的應用場…

茶席布置實訓室:傳承與創新的茶文化空間

一、茶席布置實訓室的重要意義 茶席布置實訓室是茶文化傳承與創新的重要載體。在現代社會&#xff0c;茶文化的弘揚不僅是對傳統的尊重&#xff0c;更是對生活品質和精神境界的追求。茶席布置實訓室為人們提供了一個專業、系統地學習和實踐茶文化的場所。它將理論知識與實際操…

jar is missing

在父POM中通過dependencyManagement統一管理版本&#xff0c;然后在子模塊中省略版本號。

Linux 內核中 TCP 協議棧的輸出實現:tcp_output.c 文件解析

在網絡通信領域,TCP(傳輸控制協議)作為核心的傳輸層協議,確保了數據在網絡中的可靠傳輸。Linux 內核中的 TCP 協議棧實現復雜而高效,其中 net/ipv4/tcp_output.c 文件是整個 TCP 協議棧的關鍵組成部分,負責處理數據包的發送、重傳、連接管理等核心功能。本文將深入解析該…

MySQL分頁原理與慢SQL優化實戰

分頁查詢的本質 在Web應用中&#xff0c;分頁是處理大量數據的常見需求。MySQL中的分頁通常使用LIMIT offset, size語法實現&#xff0c;例如&#xff1a; SELECT * FROM users ORDER BY id LIMIT 10000, 20; 這條語句看似簡單&#xff0c;但隱藏著性能陷阱。讓我們深入理解…

Taro:跨端開發的終極解決方案

在當今多終端并存的互聯網時代&#xff0c;開發者經常面臨一個難題&#xff1a;如何高效地為不同平臺&#xff08;如微信小程序、H5、React Native 等&#xff09;開發功能一致的應用&#xff1f;傳統的開發方式需要針對每個平臺單獨編寫代碼&#xff0c;不僅效率低下&#xff…

STM32F103C8T6 學習筆記摘要(三)

第一節 跑馬燈實驗 1. 了解電路 結構圖 說明一下&#xff1a; 那幾個LED的引腳線和數碼管的是一樣的&#xff0c;如果不想讓LED亮&#xff0c;就可以把J11的接線帽拔了這里的引腳是PA0-PA7 原理圖 說明一下&#xff1a; 當J11接線帽蓋上時&#xff0c;VCC3.3_LED就會有一個正…

GitHub Copilot 配置快捷鍵

GitHub Copilot 常用快捷鍵&#xff08;VS Code&#xff09; 功能快捷鍵&#xff08;Windows/Linux&#xff09;快捷鍵&#xff08;macOS&#xff09;接受建議&#xff08;選中的&#xff09;TabTab下一個建議Alt ]Option ]上一個建議Alt [Option [手動觸發建議Ctrl Ente…

C++異常處理:深入理解與實踐指南

C異常處理&#xff1a;深入理解與實踐指南 在現代編程中&#xff0c;異常處理是確保程序健壯性和可靠性的重要機制。C作為一種功能強大的編程語言&#xff0c;提供了豐富的異常處理機制&#xff0c;幫助開發者應對程序運行時可能出現的各種意外情況。本文將深入探討C異常處理的…

MySQL數據庫的類型

文章目錄 數值類型tinyint類型bit類型小數類型decimal 日期類型日期和時間類型 字符串類型charvarchar enum和set 數值類型 類型大小范圍&#xff08;有符號&#xff09;范圍&#xff08;無符號&#xff09;用途TINYINT1 Bytes(-128&#xff0c;127)(0&#xff0c;255)小整數值…

【Docker基礎】Docker鏡像管理:docker build詳解

目錄 1 Docker鏡像基礎概念 1.1 什么是Docker鏡像 1.2 鏡像的分層結構 2 docker build命令詳解 2.1 docker build基本語法 2.2 構建上下文概念 3 Dockerfile編寫實踐示例 3.1 Dockerfile指令詳解 3.1.1 FROM 3.1.2 RUN 3.1.3 COPY vs ADD 3.1.4 CMD vs ENTRYPOINT …

在 macOS 上部署 Akash Network 的完整 Shell 腳本解決方案

以下是在 macOS 上部署 Akash Network 的完整 Shell 腳本解決方案,包含詳細注釋和錯誤處理: #!/bin/bash # Akash Network macOS 部署腳本 v2.5 # 功能:在 macOS 系統上完整部署 Akash Network 節點和客戶端工具 # 作者:DeepSeek 區塊鏈團隊 # 日期:2025-06-20 # 文檔:h…

【分布式理論】讀確認數與寫確認數:分布式一致性的核心概念

文章目錄 零、概述一、基本概念解釋1、 什么是寫確認數&#xff08;w&#xff09;&#xff1f;2、 什么是讀確認數&#xff08;r&#xff09;&#xff1f;3、一致性級別的對應關系 二、工作流程詳解1、 寫操作的完整流程2、 讀操作的完整流程 三、強一致性的數學原理1、 為什么…

滾珠導軌在醫療設備中有多重要?

在醫療設備領域&#xff0c;穩定性是保障手術安全、提升診斷精度的核心要素。無論是手術機器人精準的器械操作&#xff0c;還是CT掃描儀高速穩定的掃描運動&#xff0c;都離不開背后精密傳動系統的支持。作為線性運動的核心部件&#xff0c;滾珠導軌憑借其獨特的滾動摩擦原理與…

港科ISM選課攻略整理

畢業要求 課程和課程目錄(ISM專業) "D:\HKUST-ISM\prepare\中英Program & Course Catalog.pdf" 課程和課程目錄&#xff08;全部ISOM課程&#xff09; "D:\HKUST-ISM\prepare\全部ISOM Course Catalog.pdf" 兩個可選專業方向 Financial Technolo…

rent8_wechat-最常用出租屋管理系統-微信小程序

rent8_wechat-最常用出租屋管理系統是rent8的微信小程序&#xff0c;需要和rent8配合使用。rent8_wechat基于Tdesign開發。 核心功能 房產管理&#xff1a;新增房產信息、修改房產信息、刪除房產信息。房間管理&#xff1a;新增房間信息、修改房間信息、刪除房間信息、入住管…

OpenCV CUDA模塊設備層---- 絕對值函數abs()

操作系統&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 編程語言&#xff1a;C11 算法描述 這是 OpenCV 的 cv::cudev 模塊中用于 CUDA 設備端&#xff08;device&#xff09;的絕對值函數&#xff0c;專門處理 uchar1 類型&#xff08;即…

IEC61850 通信協議測試驗證方法詳解

一、MMS 協議測試方法 MMS&#xff08;制造報文規范&#xff09;是 IEC61850 中用于設備監控和控制的核心協議&#xff0c;測試需覆蓋以下維度&#xff1a; &#xff08;一&#xff09;協議棧實現驗證 連接管理測試 測試用例&#xff1a;建立和釋放 MMS 連接 100 次&#xf…

關于 Kyber:抗量子密碼算法 Kyber 詳解

一、基本概念 后量子密碼學&#xff08;PQC&#xff09; │ ├──> 是一個領域&#xff08;研究如何在“量子時代”保護數據安全&#xff09; │ └──> Kyber 是這個領域中設計出來的一個“抗量子密碼算法”└──> Kyber 是用于加密密鑰交換的算法&#xff08;叫…