haproxy 1.8. X 버 전 컴 파일 설치 튜 토리 얼

1.7 과 1.8 버 전의 haproxy 는 약간 다르다. 1.8.3 버 전부터 haproxy 는 단일 프로 세 스 다 자 프로 세 스 모드 를 지원 한다. Nginx 와 유사 한 단일 master 프로 세 스 다 워 커 프로 세 스 구조, haproxy 1.8.3 이전 버 전 은 여러 개의 메 인 프로 세 스 이 고 haproxy 1.8.3 을 설치 할 때 systemd - devel 을 설치 하여 바 텀 컴 파일 지원 을 제공 해 야 한다.그렇지 않 으 면 haproxy 를 컴 파일 할 때 오류 가 발생 하고 Ws 매개 변 수 를 사용 하여 haproxy 메 인 프로 세 스 를 시작 합 니 다. 이전 버 전 에는 이 매개 변수 가 없 었 습 니 다. 구체 적 인 과정 은 다음 과 같 습 니 다.
1.1: haproxy - 1.8.3 을 다운로드 하고 컴 파일 하여 설치 합 니 다.
[root@bj-zw-comm-lb-h-25-3 ~]# cd /usr/local/src/#       ,    system-devel,        
[root@bj-zw-comm-lb-h-25-3 src]# yum install gcc gcc-c++ glibc glibc-devel pcre pcre-devel openssl  openssl-devel systemd-devel net-tools vim iotop bc  zip unzip zlib-devel lrzsz tree screen lsof tcpdump wget ntpdate
[root@bj-zw-comm-lb-h-25-3 src]# tar xvf haproxy-1.8.3.tar.gz
[root@bj-zw-comm-lb-h-25-3 src]# cd haproxy-1.8.3/#USE_CPU_AFFINITY=1    haproxy   CPU    ,USE_SYSTEMD=1      -Ws  (systemd-aware master-worker   )  Haproxy,                。
[root@bj-zw-comm-lb-h-25-3 haproxy-1.8.3]# make  ARCH=x86_64 TARGET=linux2628 USE_PCRE=1 USE_OPENSSL=1 USE_ZLIB=1 USE_SYSTEMD=1  USE_CPU_AFFINITY=1  PREFIX=/usr/local/haproxy
[root@bj-zw-comm-lb-h-25-3 haproxy-1.8.3]# make install PREFIX=/usr/local/haproxy
[root@bj-zw-comm-lb-h-25-3 haproxy-1.8.3]# cp haproxy  /usr/sbin/

1.2: 스 크 립 트 파일 시작 준비:
[root@bj-zw-comm-lb-h-25-3 haproxy-1.8.3]# vim /usr/lib/systemd/system/haproxy.service
[Unit]
Description=HAProxy Load BalancerAfter=syslog.target network.target
[Service]
#         ,              include  。
ExecStartPre=/usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -f /etc/haproxy/conf -c -q
ExecStart=/usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -f /etc/haproxy/conf -p /run/haproxy.pid
ExecReload=/bin/kill -USR2 $MAINPID
[Install]WantedBy=multi-user.target

1.3: haproxy 버 전 검증:
[root@bj-zw-comm-lb-h-25-3 haproxy-1.8.3]# haproxy -v
HA-Proxy version 1.8.3-205f675 2017/12/30
Copyright 2000-2017 Willy Tarreau 

1.4: 간단 한 haproxy 설정 파일 정의:
[root@bj-zw-comm-lb-h-25-3 haproxy-1.8.3]# mkdir  /etc/haproxy
[root@bj-zw-comm-lb-h-25-3 haproxy-1.8.3]# mkdir  /etc/haprox/conf
[root@bj-zw-comm-lb-h-25-3 haproxy-1.8.3]# cat  /etc/haproxy/haproxy.cfg 
global
maxconn 100000
chroot /usr/local/haproxy
#stats socket /var/lib/haproxy/haproxy.sock 
mode 600 level admin
uid 99
gid 99
daemon
nbproc 4
cpu-map 1 0
cpu-map 2 1
cpu-map 3 2
cpu-map 4 3
pidfile /usr/local/haproxy/run/haproxy.pid
log 127.0.0.1 local3 info

defaults
option http-keep-alive
option  forwardfor
maxconn 100000mode http
timeout connect 300000ms
timeout client  300000ms
timeout server  300000ms

listen stats
 mode http
 bind 0.0.0.0:9999 stats enable
 log global
 stats uri     /haproxy-status
 stats auth    admin:admin   #        :  
 [root@bj-zw-comm-lb-h-25-3 haproxy-1.8.3]# cat  /etc/haproxy/conf/tomcat-web.cfg  #           .cfg  
 listen  web_port
 bind 0.0.0.0:80 mode http
 log global
 server web1  127.0.0.1:8080  check inter 3000 fall 2 rise 5

1.5: haproxy 상태 검증 시작:
1.5.1: 다음은 1.8.3 버 전의 단일 프로 세 스 다 중 프로 세 스 모드 입 니 다.
[root@bj-zw-comm-lb-h-25-3 haproxy-1.8.3]# systemctl daemon-reload
[root@bj-zw-comm-lb-h-25-3 haproxy-1.8.3]# systemctl  restart haproxy
[root@bj-zw-comm-lb-h-25-3 haproxy-1.8.3]# cat /run/haproxy.pid 41998
[root@bj-zw-comm-lb-h-25-3 haproxy-1.8.3]# ps -ef | grep haproxy
root      41998      1  0 16:27 ?        00:00:00 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid
nobody    41999  41998  0 16:27 ?        00:00:00 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid
nobody    42000  41998  0 16:27 ?        00:00:00 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid
nobody    42001  41998  0 16:27 ?        00:00:00 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid
nobody    42002  41998  0 16:27 ?        00:00:00 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid
root      42186  10580  0 16:28 pts/14   00:00:00 grep --color=auto haproxy

1.5.2: 다음은 1.7 버 전의 전통 적 인 다 중 프로 세 스 의 haproxy 모드 입 니 다.
[root@docker-server4 ~]# ps -ef | grep haproxy
root     118786      1  0 17:10 ?        00:00:00 /usr/sbin/haproxy-systemd-wrapper -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid
root     118787 118786  0 17:10 ?        00:00:00 [haproxy] 
nobody   118788      1  6 17:10 ?        00:00:00 /usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid -Ds
nobody   118789      1  6 17:10 ?        00:00:00 /usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid -Ds
nobody   118790      1  3 17:10 ?        00:00:00 /usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid -Ds
nobody   118791      1  5 17:10 ?        00:00:00 /usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid -Ds
root     118814  99636  0 17:10 pts/0    00:00:00 grep --color=auto haproxy

1.5.3: 다음은 Nginx 의 단일 프로 세 스 다 중 프로 세 스 모드 입 니 다. 이 모드 는 1.8.3 버 전의 haproxy 작업 모드 와 유사 합 니 다.
[root@docker-server5 ~]# ps -ef | grep nginx
root     13399     1  0 Jan06 ?        00:00:01 nginx: master process /apps/tengine/sbin/nginx -s start
devops   22165 22122  0 16:20 pts/0    00:00:00 grep --color=auto nginx
zceo     22915 13399  0 Jan13 ?        00:41:41 nginx: worker process
zceo     22916 13399  0 Jan13 ?        00:41:59 nginx: worker process
zceo     22917 13399  0 Jan13 ?        00:41:38 nginx: worker process
zceo     22918 13399  0 Jan13 ?        00:41:32 nginx: worker process
zceo     22919 13399  0 Jan13 ?        00:41:22 nginx: worker process
zceo     22920 13399  0 Jan13 ?        00:41:40 nginx: worker process
zceo     22921 13399  0 Jan13 ?        00:42:07 nginx: worker process
zceo     22922 13399  0 Jan13 ?        00:41:40 nginx: worker process

1.5.4: 다음은 apache 의 단일 프로 세 스 다 중 프로 세 스 모드 이 고 1.8.3 버 전의 haproxy 작업 모드 와 유사 합 니 다.
[root@ztouch-cluster12-web1 ~]# ps -ef | grep apache
root      6758     1  0 11:01 ?        00:00:00 /usr/local/apache2.2.17/bin/httpd -k start
webshop   6760  6758  0 11:01 ?        00:00:00 /usr/local/apache2.2.17/bin/httpd -k start
webshop   6761  6758  0 11:01 ?        00:00:02 /usr/local/apache2.2.17/bin/httpd -k start
webshop   6762  6758  0 11:01 ?        00:00:03 /usr/local/apache2.2.17/bin/httpd -k start
webshop   6764  6758  0 11:01 ?        00:00:03 /usr/local/apache2.2.17/bin/httpd -k start
webshop   6770  6758  0 11:01 ?        00:00:03 /usr/local/apache2.2.17/bin/httpd -k start
webshop   6771  6758  0 11:01 ?        00:00:03 /usr/local/apache2.2.17/bin/httpd -k start
webshop   6780  6758  0 11:01 ?        00:00:02 /usr/local/apache2.2.17/bin/httpd -k start
root      8076  8038  0 11:50 pts/2    00:00:00 grep apache

  :Haproxy  keepalived     ,keepalived         VIP  ,       Haproxy    
    :
          :
        echo "net.ipv4.ip_nonlocal_bind = 1" >> /etc/sysctl.conf
        sysctl -p

좋은 웹페이지 즐겨찾기