다운 사이트 : http://haproxy.1wt.eu/
설치
다운로드
wget http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.24.tar.gz
설치 & 컴파일
tar xvfz haproxy-1.4.24.tar.gz
cd haproxy-1.4.24/
32비트
make TARGET=linux26 ARCH=x86 PREFIX=/usr/local/haproxy
64비트
make TARGET=linux26 ARCH=x86_64 PREFIX=/usr/local/haproxy
make install
스크립트 복사
cd examples/
cp haproxy.init /etc/rc.d/init.d/haproxy
chmod 755 /etc/rc.d/init.d/haproxy
mkdir -p /etc/haproxy/
cp haproxy.cfg /etc/haproxy/
mkdir -p /etc/haproxy/errors/
cp ./errorfiles/* /etc/haproxy/errors/
심볼릭 링크 지정
ln -sf /usr/local/sbin/haproxy /usr/sbin/haproxy
프로그램 시작
[root@localhost network-scripts]# /etc/init.d/haproxy start
Starting haproxy: [ALERT] 055/033619 (5018) : Starting proxy test: cannot bind socket
[실패]
하면 애러……
설정을 해야댐..
vi /etc/haproxy/haproxy.cfg 열면 기본 설정이 있음…그래서 설정을 해이댐 설정에 앞서!!
cp -arp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0:0
vim /etc/sysconfig/network-scripts/ifcfg-eth0:0
DEVICE=eth0:0
BOOTPROTO=static
ONBOOT=yes
#HWADDR=BC:5F:F4:FD:AA:88
IPADDR=xxx.xxx.xxx.21
NETMASK=255.255.255.0
해당 프록시 서버가 ” xxx.xxx.xxx.20 ” 번 이라면 ” xxx.xxx.xxx.21 “아이피로 alias 설정(네트웤이 /24 일경우. 그게 아니라면 해당 대역에 있는 아이피 사용)
[root@localhost haproxy]# ifconfig
eth0 Link encap:Ethernet HWaddr BC:5F:F4:FD:AA:88
inet addr:xxx.xxx.xxx.20 Bcast:115.68.141.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:30283 errors:0 dropped:0 overruns:0 frame:0
TX packets:21719 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:9061670 (8.6 MiB) TX bytes:8092143 (7.7 MiB)
eth0:0 Link encap:Ethernet HWaddr BC:5F:F4:FD:AA:88
inet addr:xxx.xxx.xxx.21 Bcast:115.68.141.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
이제 해당 프록시를 설정해봅세
vi /etc/haproxy/haproxy.cfg
# this config needs haproxy-1.1.28 or haproxy-1.2.1
global
log 127.0.0.1 local0
log 127.0.0.1 local1 notice
#log loghost local0 info
maxconn 4096
# chroot /usr/share/haproxy
uid 99
gid 99
daemon
#debug
#quiet
defaults
log global
mode http
#option httplog
option dontlognull
retries 3
#redispatch
maxconn 2000
contimeout 5000
clitimeout 50000
srvtimeout 50000
stats enable
stats uri /lb?stats
stats realm Haproxy\ Statistics
# hoguking
listen test xxx.xxx.xxx.21:80 —-> listen 앞에는 프록시명(다른 설정을 할때 플락시명이 겹치면 애러)을 적어주고, 위쪽에는 아까 설정한 eth0:0 의 아이피를
option forwardfor
server inst1 xxx.xxx.xxx.xxx:80 check inter 2000 fall 3 —> 아래 쪽에는 본인의 웹서버 아이피를 넣어 준다
listen test1 xxx.xxx.xxx.21:3306
option forwardfor
server inst1 xxx.xxx.xxx.xxx:3306 check inter 2000 fall 3
[root@localhost haproxy]# netstat -nlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 xxx.xxx.xxx.21:3306 0.0.0.0:* LISTEN 6648/haproxy
tcp 0 0 xxx.xxx.xxx.21:80 0.0.0.0:* LISTEN 6648/haproxy
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 2097/sshd
udp 0 0 0.0.0.0:59070 0.0.0.0:* 6648/haproxy
이제 서버를 접속 하면 잘된다.
이걸로써 두개의 아이피로 서버의 접근이 가능하고 ssh 및 tcp 관련해서 접근 하는것은 모두 가능!!!!!!!ㅇㅇ!!!
=======================================================================
TIP1
해당 도메인의 DNS, 즉 네임서버 등록해 있는 존파일에 웹서버 실아이피를 넣지 말고 haproxy 서버 아이피를 등록해도 해당 홈페이지로 접근 가능!!!!!!
이렇게 되면 해당 웹서버의 실제 아이피를 알아 내기 어렵다, 이또 한 보안에 상당한 도움이 된다!!!!!!!
=======================================================================
TIP2
HAPROXY 서버에서 0.0.0.0:포트주소 형식으로 LISTEN 상태라면 해당 포트로는 haproxy 실행되지 않음
tcp 0 0 192.168.0.1:80 0.0.0.0:* LISTEN 17783/haproxy
tcp 0 0 192.168.0.2:80 0.0.0.0:* LISTEN 15677/httpd
httpd.conf
Listen 192.168.0.2:80
haproxy.conf
listen test 192.168.0.1:80
=======================================================================
분배테스트
VIP 공인 ↔ 공인 : 분배됨
VIP 공인 ↔ 사설 : 분배됨
VIP 사설 ↔ 사설 : 분배됨
VIP 사설 ↔ 공인 : 분배됨
HAPROXY 서버에서 리얼서버 분배 포트로 통신가능하면 전세계 어디든지 넘길수 있음 ㅇㅇ
=======================================================================
회사에서 테스트를 한다기에 함 사용 해봤다 ㅇㅇ 개인서버에다가 테스트 해봤는데 생각 보다 만족!!!
서버에 부하 분산으로 사용하고, 서버동접자 수가 많고 가용성이 필요 사이트는 사용하기 좋은 것 같음!!!
0 개의 댓글