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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Web群集与日志管理Haproxy搭建

發(fā)布時間:2024/2/28 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Web群集与日志管理Haproxy搭建 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

  • 常見的web群集調度器
    • Haproxy應用分析
    • Haproxy調度算法原理
    • 高并發(fā)架構
  • Nginx的安裝與啟動
    • Haproxy安裝與啟動
  • Haproxy配置文件詳解
    • Haproxy配置文件詳解
    • Haproxy配置應用模塊參數(shù)
    • 配置與測試
  • Haproxy日志管理
    • 實驗步驟
    • haproxy服務器配置

常見的web群集調度器

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

Haproxy應用分析

LVS在企業(yè)應用中抗負載能力很強,但存在不足

  • .LVS不支持正則處理,不能實現(xiàn)動靜分離
  • 對于大型網站,LVs的實施配置復雜,維護成本相對較高

Haproxy是一款可提供高可用性、負載均衡、及基于
TCP和HTTP應用的代理的軟件

  • 適用于負載大的Web站點
  • 運行在硬件上可支持數(shù)以萬計的并發(fā)連接的連接請求

Haproxy調度算法原理

Haproxy支持多種調度算法,最常用的有三種
1:RR (Round Robin)
RR算法是最簡單最常用的一種算法,即輪詢調度
理解舉例
◆有三個節(jié)點A、B、C
◆第一個用戶訪問會被指派到節(jié)點A
◆第二個用戶訪問會被指派到節(jié)點B
◆第三個用戶訪問會被指派到節(jié)點C
◆第四個用戶訪問繼續(xù)指派到節(jié)點A,輪詢分配訪問請求實現(xiàn)負載均衡效果

2:LC (Least Connections)
◆最小連接數(shù)算法,根據(jù)后端的節(jié)點連接數(shù)大小動態(tài)分配前端請求
理解舉例
◆有三個節(jié)點A、B、C,各節(jié)點的連接數(shù)分別為A:4、B:5、 C:6
◆第一個用戶連接請求,會被指派到A上,連接數(shù)變?yōu)锳:5、B:5、 C:6.
◆第二個用戶請求會繼續(xù)分配到A上,連接數(shù)變?yōu)锳:6、B:5、 C:6; 再
有新的請求會分配給B,每次將新的請求指派給連接數(shù)最小的客戶端
◆由于實際情況下A、B、C的連接數(shù)會動態(tài)釋放,很難會出現(xiàn)-樣連
接數(shù)的情況
◆此算法相比較rr算法有很大改進,是目前用到比較多的一種算法

3:SH (Source Hashing)
◆基于來源訪問調度算法,用于- 些有Session會話記錄在服務器端的場景, 可以
基于來源的IP、Cookie等做集群調度
理解舉例
◆有三個節(jié)點A. B、C,第一個用戶第一次訪問被指派到了A,第二個用戶第一次
訪問被指派到了B
◆當?shù)谝粋€用戶第二次訪問時會被繼續(xù)指派到A,第二個用戶第二二次訪問時依舊會
被指派到B,只要負載均衡調度器不重啟,第一個用戶訪問都會被指派到A,第二
個用戶訪問都會被指派到B,實現(xiàn)集群的調度

◆此調度算法好處是實現(xiàn)會話保持,但某些IP訪問量非常大時會引起負載不均衡,
部分節(jié)點訪問量超大,影響業(yè)務使用

高并發(fā)架構

主機要求

主機操作系統(tǒng)IP地址主要軟件
Haproxycentos7.3192.168.136.60Haproxy1.5.19
nginx1centos7.3192.168.136.40nginx-1.12.0
nginx2centos7.3192.168.136.30nginx-1.12.0
客戶端windows10192.168.136.99游覽器

Nginx的安裝與啟動

  • 在兩臺網站服務器.上安裝Nginx,并啟動服務
  • 使用源碼編譯的方式進行安裝
  • 關閉Firewalld防火墻
  • 增加系統(tǒng)用戶賬號nginx
  • 編譯安裝Nginx并啟動
  • 在兩臺Nginx.上配置測試網站,注意測試網頁的內容應
    該不同,以便進行測試

Haproxy安裝與啟動

在負載均衡器.上安裝Haproxy

安裝步驟

  • 安裝基礎軟件包

  • 編譯安裝haproxy

  • 要注意操作系統(tǒng)版本,是32位系統(tǒng)還是64位

    建立Haproxy的配置文件

  • 創(chuàng)建配置文件目錄/etc/haproxy

  • 將源碼包提供的配置文件樣例haproxy.cfg復制到配置文件
    目錄中

Haproxy配置文件詳解

Haproxy配置文件通常分為3個部分
global:為全局配置
defaults:為默認配置
listen:為應用組件配置

Haproxy配置文件詳解

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

  • log global:定義日志為globa|配置中的日志定義
  • mode http:模式為http
  • option httplog:采用http日志格式記錄日志
  • retries 3:檢查節(jié)點服務器失敗連續(xù)達到三次則認為節(jié)點不可用
  • maxconn 2000: 最大連接數(shù)
  • contimeout 5000: 連接超時時間
  • clitimeout 50000:客戶端超時時間
  • srvtimeout 50000:服務器超時時間

Haproxy配置應用模塊參數(shù)

listen配置項目一般為配置應用模塊參數(shù)

  • listen appli4-backup 0.0.0.0:10004:定義一個appli4-
    backup的應用
  • option httpchk /index.html:檢查服務器的index.html文件
  • option persist :強制將請求發(fā)送到已經down掉的服務器
  • balance roundrobin:負載均衡調度算法使用輪詢算法
  • server/inst1 192.168.114.56:80 check inter 2000 fall 3:
    定義在線節(jié)點
  • server (inst2 192.168.114.56:81 check inter 2000 fall 3
    backup:定義備份節(jié)點

http提交請求2種p

get,post

配置與測試

測試Haproxy集群

  • 測試高性能
  • 可在兩個不同的瀏覽器中分別訪問兩個測試網站,正常情況下應該出
    現(xiàn)兩個網站的測試頁面
    高可用性
  • 將其中- -臺Nginx服務器停用,在客戶端瀏覽器中訪問Haproxy, 正
  • 常情況下應出現(xiàn)另外一臺Nginx服務 器的網站測試頁面

Haproxy日志管理

默認是輸出到系統(tǒng)的syslog中,生產環(huán)境中-般單獨定義
定義的方法步驟

  • 修改Haproxy配置文件中關于日志配置的選項,加入配置
  • log /dev/log local0 info
  • log /devlog local0 notice
  • 修改rsyslog配置,將Haproxy相關的配置獨立定義到
    haproxy.conf,并放到/etc/rsyslog.d/下
  • 保存配置文件并重啟rsyslog服務,完成rsyslog配置
  • 訪問Haproxy集群測試網頁并查看日志信息

實驗步驟

實驗需要4臺服務器

nginx1節(jié)點:192.168.136.30

nginx2節(jié)點:192.168.136.40

haproxy:192.168.136.60

window10:192.168.136.88

節(jié)點服務器web1和web2配置兩臺一樣的nginx

[root@localhost ~]# systemctl stop firewalld.service [root@localhost ~]# setenforce 0 [root@localhost ~]# hostname web1 [root@localhost ~]# su .安裝依賴包 [root@web1 ~]# yum install gcc-c++ pcre-devel zlib-devel make -y rz waiting to receive.為web服務器創(chuàng)建用戶nginx,便于管理,再進行編譯安裝 [root@web1 ~]# useradd -M -s /sbin/nologin nginx [root@web1 ~]# tar zxvf nginx-1.12.0.tar.gz [root@web1 ~]# cd nginx-1.12.0/ [root@web1 nginx-1.12.0]# ./configure \--prefix=/usr/local/nginx \--user=nginx \--group=nginx [root@web1 nginx-1.12.0]# make && make install兩臺Nginx節(jié)點服務器創(chuàng)建首頁,首頁文件名一樣,內容不一樣 [root@web1 nginx-1.12.0]# cd /usr/local/nginx/ [root@web1 nginx]# cd html/ [root@web1 html]# vim test.html <h1>this is kgc web</h1> [root@web1 html]# ln -s /usr/local/nginx/sbin/nginx /usr/sbin/ [root@web1 html]# nginx 啟動nginx 在網站上測試下nginx是否成功

haproxy服務器配置

關閉防火墻

[root@localhost ~]# systemctl stop firewalld.service [root@localhost ~]# setenforce 0

編譯環(huán)境

[root@haproxy ~]# yum install pcre-devel bzip2-devel gcc gcc-c++ make -y

解壓服務包

[root@haproxy ~]# tar zxvf haproxy-1.5.19.tar.gz

服務編譯

[root@haproxy ~]# cd haproxy-1.5.19/ [root@haproxy haproxy-1.5.19]# make TARGET=linux26 [root@haproxy haproxy-1.5.19]# make install

將源碼包提供的配置文件樣例haproxy.cfg復制到配置文件
目錄中

[root@haproxy haproxy-1.5.19]# mkdir /etc/haproxy [root@haproxy haproxy-1.5.19]# cp examples/haproxy.cfg /etc/haproxy/

修改Haproxy配置文件

[root@haproxy haproxy-1.5.19]# cd /etc/haproxy/ [root@haproxy haproxy]# vim haproxy.cfg # chroot /usr/share/haproxy # redispatch 把這兩句話注釋掉set nu 26行以下的全部刪除添加 listen webcluster 0.0.0.0:80 option httpchk GET /test.htmlbalance roundrobinserver inst1 192.168.169.100:40 check inter 2000 fall 3 server inst2 192.168.169.200:30 check inter 2000 fall 3

開啟服務啟動腳本

[root@haproxy haproxy]# cd ~/haproxy-1.5.19/ [root@haproxy haproxy-1.5.19]# cp examples/haproxy.init /etc/init.d/haproxy [root@haproxy haproxy-1.5.19]# cd /etc/init.d/ [root@haproxy init.d]# chmod +x haproxy

讓系統(tǒng)可以識別

[root@haproxy init.d]# chkconfig --add /etc/init.d/haproxy 名稱自動添加 [root@haproxy init.d]# ln -s /usr/local/sbin/haproxy /usr/sbin/ [root@haproxy init.d]# service haproxy start


日志定義

[root@haproxy haproxy]# vim /etc/haproxy/haproxy.cfg log /dev/log local0 infolog /dev/log local0 notice [root@haproxy haproxy]# service haproxy restart

定義配置文件

[root@haproxy haproxy]# cd /etc/rsyslog.d/ [root@haproxy rsyslog.d]# vim haproxy.conf if ($programname == 'haproxy' and $syslogseverity-text == 'info') then -/var/log/haproxy/haproxy-info.log &~ if ($programname == 'haproxy' and $syslogseverity-text == 'notice') then -/var/log/haproxy/haproxy-notice.log &~

開啟服務查看

[root@haproxy rsyslog.d]# systemctl restart rsyslog.service [root@haproxy rsyslog.d]# service haproxy restart [root@haproxy rsyslog.d]# ls /var/log/ 現(xiàn)在查看里面就有了haproxy這個文件了 [root@haproxy haproxy]# ls /var/log/haproxy/ haproxy-info.log haproxy-notice.log

總結

以上是生活随笔為你收集整理的Web群集与日志管理Haproxy搭建的全部內容,希望文章能夠幫你解決所遇到的問題。

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