溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

HaProxy的安裝配置和常用命令介紹

發(fā)布時(shí)間:2020-06-05 09:22:13 來源:億速云 閱讀:2517 作者:Leah 欄目:系統(tǒng)運(yùn)維

這篇文章主要為大家分享HaProxy的安裝配置。文中還介紹了HaProxy的兩種安裝方式:yum安裝haproxy和編譯安裝haproxy,以及haproxy的常用命令介紹,希望大家通過這篇文章能有所收獲。

yum 安裝 haproxy

CentOS自帶了haproxy,但可能版本比較老??梢栽贗US源上找到穩(wěn)定版的haproxy。

主要步驟如下:

(1)配置yum源

cat <<eof>/etc/yum.repos.d/ius-7.repo
[ius]
name = IUS for Enterprise Linux 7 - $basearch
baseurl = https://repo.ius.io/7/$basearch/
enabled = 1
repo_gpgcheck = 0
gpgcheck = 1
gpgkey = https://repo.ius.io/RPM-GPG-KEY-IUS-7
[ius-debuginfo]
name = IUS for Enterprise Linux 7 - $basearch - Debug
baseurl = https://repo.ius.io/7/$basearch/debug/
enabled = 0
repo_gpgcheck = 0
gpgcheck = 1
gpgkey = https://repo.ius.io/RPM-GPG-KEY-IUS-7
[ius-source]
name = IUS for Enterprise Linux 7 - Source
baseurl = https://repo.ius.io/7/src/
enabled = 0
repo_gpgcheck = 0
gpgcheck = 1
gpgkey = https://repo.ius.io/RPM-GPG-KEY-IUS-7
eof

(2)清理、更新和快速生成 yum 緩存

yum clean all
yum update
yum makecache fast

(3)查看下系統(tǒng)中haproxy版本有哪些

yum list|grep haproxy

(4)yum安裝 haproxy18u

#這里安裝 haproxy18u 

yum install haproxy18u -y

編譯安裝 haproxy

編譯安裝haproxy時(shí),可以借助于pcre環(huán)境,該環(huán)境下編譯時(shí)借助正則表達(dá)式分析編譯速度會快很多,但是沒有該環(huán)境也可以安裝。

主要步驟如下:

(1)安裝 pcre pcre-devel

yum -y install pcre pcre-devel

(2)創(chuàng)建haproxy運(yùn)行的用戶和組

groupadd -r haproxy
useradd -g haproxy -M -s /sbin/nologin haproxy

(3)編譯安裝haproxy

#下載地址:
http://www.haproxy.org/ 
#解壓:
tar zxf haproxy-1.8.23.tar.gz -C /usr/local
#編譯安裝:
cd /usr/local/haproxy-1.8.23
make TARGET=linux3100 ARCH=x86_64 PREFIX=/usr/local/haproxy USE_PCRE=1
make install PREFIX=/usr/local/haproxy

說明??:

make時(shí)需要使用TARGET指定內(nèi)核及版本,可以通過uname -r來查看,版本如下:

- linux22     for Linux 2.2
- linux24     for Linux 2.4 and above (default)
- linux24e    for Linux 2.4 with support for a working epoll (> 0.21)
- linux26     for Linux 2.6 and above
- linux2628   for Linux 2.6.28, 3.x, and above (enables splice and tproxy)
- solaris     for Solaris 8 or 10 (others untested)
- freebsd     for FreeBSD 5 to 10 (others untested)
- netbsd      for NetBSD
- osx         for Mac OS/X
- openbsd     for OpenBSD 5.7 and above
- aix51       for AIX 5.1
- aix52       for AIX 5.2
- cygwin      for Cygwin
- haiku       for Haiku
- generic     for any other OS or version.
- custom      to manually adjust every setting

使用ARCH指定架構(gòu),不過ARCH選項(xiàng)可省。使用USE_PCRE=1表示使用PCRE環(huán)境編譯,加快編譯速度。

本文的操作系統(tǒng)內(nèi)核版本為3.10.0,TARGET指定為 linux2628。我這邊使用 linux3100 也沒有報(bào)錯(cuò)~

編譯安裝完成后,只有3個(gè)目錄:doc、share和sbin,sbin里面只有一個(gè)haproxy的主程序haproxy。

(4)管理haproxy服務(wù)

ln -s /usr/local/haproxy/sbin/haproxy /usr/sbin/haproxy
cd /usr/local/haproxy-1.8.23/examples
cp haproxy.init /etc/rc.d/init.d/haproxy
cd /etc/rc.d/init.d
chmod +x haproxy

(5)設(shè)置haproxy相關(guān)的配置文件

#創(chuàng)建配置目錄
mkdir /usr/local/haproxy/conf 
#創(chuàng)建主配置文件
touch /usr/local/haproxy/conf/haproxy.cfg
#創(chuàng)建啟動腳本配置目錄
mkdir /etc/haproxy/  
#添加配置文件的軟連接
ln -s /usr/local/haproxy/conf/haproxy.cfg /etc/haproxy/haproxy.cfg 
#創(chuàng)建日志目錄
mkdir /usr/local/haproxy/log
#創(chuàng)建日志文件
touch /usr/local/haproxy/log/haproxy.log
#添加軟連接
ln -s /usr/local/haproxy/log/haproxy.log /var/log/haproxy.log  
#拷貝錯(cuò)誤頁面
cp -r /usr/local/haproxy-1.8.23/examples/errorfiles/ /usr/local/haproxy/
#給錯(cuò)誤頁面添加軟連接
ln -s /usr/local/haproxy/errorfiles /etc/haproxy/errorfiles

(6)配置haproxy.cfg參數(shù)

#編輯 haproxy.cfg 配置文件
vim /usr/local/haproxy/conf/haproxy.cfg    

#---------------------------------------------------------------------
# Global settings
#---------------------------------------------------------------------
global
 log 127.0.0.1 local2   ###[err warning info debug] 
 chroot /usr/local/haproxy
 pidfile /var/run/haproxy.pid ###haproxy的pid存放路徑,啟動進(jìn)程的用戶必須有權(quán)限訪問此文件 
 maxconn 4000     ###最大連接數(shù),默認(rèn)4000
 user haproxy
 group haproxy
 daemon       ###創(chuàng)建1個(gè)進(jìn)程進(jìn)入deamon模式運(yùn)行。此參數(shù)要求將運(yùn)行模式設(shè)置為"daemon"

#---------------------------------------------------------------------
# common defaults that all the 'listen' and 'backend' sections will 
# use if not designated in their block
#---------------------------------------------------------------------
defaults
 mode http    ###默認(rèn)的模式mode { tcp|http|health },tcp是4層,http是7層,health只會返回OK
 log global   ###采用全局定義的日志
 option dontlognull  ###不記錄健康檢查的日志信息
 option httpclose  ###每次請求完畢后主動關(guān)閉http通道 
 option httplog   ###日志類別http日志格式 
 option forwardfor  ###如果后端服務(wù)器需要獲得客戶端真實(shí)ip需要配置的參數(shù),可以從Http Header中獲得客戶端ip 
 option redispatch  ###serverId對應(yīng)的服務(wù)器掛掉后,強(qiáng)制定向到其他健康的服務(wù)器
 timeout connect 10000 #default 10 second timeout if a backend is not found
 timeout client 300000 ###客戶端連接超時(shí)
 timeout server 300000 ###服務(wù)器連接超時(shí)
 maxconn  60000  ###最大連接數(shù)
 retries  3   ###3次連接失敗就認(rèn)為服務(wù)不可用,也可以通過后面設(shè)置 
####################################################################
listen stats
  bind 0.0.0.0:1080   #監(jiān)聽端口 
  stats refresh 30s   #統(tǒng)計(jì)頁面自動刷新時(shí)間 
  stats uri /stats   #統(tǒng)計(jì)頁面url 
  stats realm Haproxy Manager #統(tǒng)計(jì)頁面密碼框上提示文本 
  stats auth admin:admin  #統(tǒng)計(jì)頁面用戶名和密碼設(shè)置 
  #stats hide-version   #隱藏統(tǒng)計(jì)頁面上HAProxy的版本信息
#---------------------------------------------------------------------
# main frontend which proxys to the backends
#---------------------------------------------------------------------
frontend main
 bind 0.0.0.0:80
 acl url_static path_beg -i /static /p_w_picpaths /javascript /stylesheets
 acl url_static path_end -i .jpg .gif .png .css .js

 use_backend static if url_static  ###滿足策略要求,則響應(yīng)策略定義的backend頁面
 default_backend dynamic   ###不滿足則響應(yīng)backend的默認(rèn)頁面

#---------------------------------------------------------------------
# static backend for serving up p_w_picpaths, stylesheets and such
#---------------------------------------------------------------------

backend static
 balance  roundrobin     ###負(fù)載均衡模式輪詢
 server  static 127.0.0.1:80 check ###后端服務(wù)器定義

backend dynamic
 balance roundrobin
 server   websrv1 192.168.180.9:80 check maxconn 2000
 server   websrv2 192.168.180.4:80 check maxconn 2000

#---------------------------------------------------------------------
# round robin balancing between the various backends
#---------------------------------------------------------------------

errorfile 403 /etc/haproxy/errorfiles/403.http
errorfile 500 /etc/haproxy/errorfiles/500.http
errorfile 502 /etc/haproxy/errorfiles/502.http
errorfile 503 /etc/haproxy/errorfiles/503.http

(7)啟動 haproxy 服務(wù)

#haproxy配置文件語法檢查
haproxy -c -f /usr/local/haproxy/conf/haproxy.cfg
Configuration file is valid 
#haproxy服務(wù)啟動
systemctl start haproxy
#haproxy服務(wù)開機(jī)自啟動
chkconfig --add haproxy
chkconfig haproxy on
chkconfig --list|grep haproxy

(8)設(shè)置haproxy日志

#編輯/etc/rsyslog.conf 取消注釋:

$ModLoad imudp 
$UDPServerRun 514 
$ModLoad imtcp 
$InputTCPServerRun 514 
#添加:
local2.*                                                /var/log/haproxy.log          

說明??:

以上修改haproxy日志會同時(shí)寫入到/var/log/haproxy.log/var/log/messages兩個(gè)文件里,由于haproxy日志量很多所以只讓其寫入到/var/log/haproxy.log文件需要修改/etc/rsyslog.conf文件這個(gè)配置:

*.info;mail.none;authpriv.none;cron.none                /var/log/messages
更改為:
*.info;mail.none;authpriv.none;cron.none;local2.none               /var/log/messages      #這樣只會寫入到/var/log/haproxy.log

修改/etc/sysconfig/rsyslog

#修改”SYSLOGD_OPTIONS”參數(shù)
-c 2 使用兼容模式,默認(rèn)是 -c 5;-r 開啟遠(yuǎn)程日志;-m 0 標(biāo)記時(shí)間戳,單位是分鐘,0表示禁用該功能。
#完整內(nèi)容如下
# Options for rsyslogd
# Syslogd options are deprecated since rsyslog v3.
# If you want to use them, switch to compatibility mode 2 by "-c 2"
# See rsyslogd(8) for more details
#SYSLOGD_OPTIONS=""
SYSLOGD_OPTIONS="-c 2 -r -m 0"
#SYSLOGD_OPTIONS="-c 2 -r -m 0"
&~
#重新啟動rsyslog服務(wù)
systemctl restart rsyslog.service

(9)測試

打開瀏覽器打開haproxy監(jiān)控頁面,192.168.246.168:1080/stats,賬號:admin,密碼:admin

查看 haproxy 的log:tail -f /var/log/haproxy.log

擴(kuò)展

haproxy常用命令:

# 檢查配置文件語法
haproxy -c -f /etc/haproxy/haproxy.cfg

# 以daemon模式啟動,以systemd管理的daemon模式啟動
haproxy -D -f /etc/haproxy/haproxy.cfg [-p /var/run/haproxy.pid]
haproxy -Ds -f /etc/haproxy/haproxy.cfg [-p /var/run/haproxy.pid]

# 啟動調(diào)試功能,將顯示所有連接和處理信息在屏幕
haproxy -d -f /etc/haproxy/haproxy.cfg

# restart。需要使用st選項(xiàng)指定pid列表
haproxy -f /etc/haproxy.cfg [-p /var/run/haproxy.pid] -st `cat /var/run/haproxy.pid`

# graceful restart,即reload。需要使用sf選項(xiàng)指定pid列表
haproxy -f /etc/haproxy.cfg [-p /var/run/haproxy.pid] -sf `cat /var/run/haproxy.pid`

# 顯示haproxy編譯和啟動信息
haproxy -vv


關(guān)于HaProxy的安裝配置和常用命令就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果喜歡這篇文章,不如把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI