로드벨런싱 (HAProxy) - haproxy-1.5.18-3.el7_3.1.x86_64 리눅스

[ 환경설정 파일 ]

haproxy-1.5.2-2.el6.x86_64버전과 환경설정이 좀 다르다.
로드벨런싱 SW이다.
아래는 docker 컨테이너를 이중화하여 서비스하는 구성이다.

1. 패키지 다운로드 및 설치
# yum install haproxy -y --downloadonly --downloaddir=./download
# cd download
# yum install haproxy-1.5.18-3.el7_3.1.x86_64.rpm

2. 환경설정
# cat /etc/hosts
192.168.100.152 app1 app2

# cd /etc/haproxy
# vi haproxy.cfg
global
    log         127.0.0.1 local0
    log         127.0.0.1 local1 notice

    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     4000
    user        haproxy
    group       haproxy
    daemon

    stats socket /var/lib/haproxy/stats

defaults
    mode                    http
    log                     global
    option                  httplog
    option                  dontlognull
    option redispatch
    option http-server-close
    retries                 3
    timeout http-request    10s
    timeout queue           1m
    timeout connect         10s
    timeout client          1m
    timeout server          1m
    timeout http-keep-alive 10s
    timeout check           10s
    maxconn                 3000

listen statistics
    bind 192.168.100.152:1936
    mode            http
    log             global

    maxconn 10
    timeout queue   100s

    stats enable
    stats hide-version
    stats refresh 30s
    stats show-node
    stats auth admin:password
    stats uri  /haproxy?stats

frontend  main 192.168.100.152:5000
    # acl url_static       path_beg       -i /static /images /javascript /stylesheets
    # acl url_static       path_end       -i .jpg .gif .png .css .js
    # use_backend static          if url_static
    default_backend             app

backend static
    # balance     roundrobin
    # server      static 127.0.0.1:4331 check

backend app
    balance     roundrobin
    server  app1 192.168.100.152:8787 check
    server  app2 192.168.100.152:8686 check

3. 서비스 실행
# /usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -d
  디버그 모드로 실행하여 문제없으면 데몬 모드로 실행
# /usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -D

4. 웹서비스 접속(브라우저)
http://192.168.100.152:5000

5. ha상태확인(브라우저)
로그인ID: admin
로그인PW: password






















==========================================================================
사용자 -> HAproxy(SSL) -> Tomcat(SSL) 설정사항
아래 설정파일과 같이하면 소스IP를 그대로 WAS에 전달 함

[ 설치 ]
$ make TARGET=linux26 CPU=x86_64 USE_STATIC_PCRE=1 USE_LINUX_TPROXY=1 USE_ZLIB=1 USE_OPENSSL=1 USE_PCRE=1
$ make install target=linux26 



==========================================================================
일부 HTTP Header에서 필수 키값이 없으면 400 Bad request 에러를 발생한다.
이것을 무시하는 옵션을 아래와 같이 추가하면 정상적으로 연결이된다.

global
     tune.ssl.default-dh-param    2048

defaults
    option accept-invalid-http-request
    option accept-invalid-http-response

덧글

  • 2018/10/22 10:42 # 삭제 답글 비공개

    비공개 덧글입니다.
  • 장땡 2019/02/15 20:53 # 답글

    옛날 포스팅이군요. ㅠㅠㅠ
    지금이라도 답변합니다. 상관없습니다. 동일한 IP에 다른 포트로 접속을 시도합니다.
댓글 입력 영역