虚拟化容器,大数据,DBA,中间件,监控。

Centos6 安装pen,实现tcp负载均衡

02 11月
作者:admin|分类:应用管理

Centos6 安装pen 实现负载均衡,下面是web安装实例。


 
Install pen which is lightweight simple Load Balancing software.
It is TCP protocol based, so it's possible to balance not only HTTP but SMTP, FTP, LDAP and so on.
This example is based on the environment like follows.
        |
--------+--------------------------------------------------------------------
        |
        +-------------------+--------------------+--------------------+
        |10.0.0.30          |10.0.0.51           |10.0.0.52           |10.0.0.53
 +------+-----+     +-------+------+     +-------+------+     +-------+------+
 |  Frontend  |     |   Backend#1  |     |   Backend#2  |     |   Backend#3  |
 | Pen Server |     |  Web Server  |     |  Web Server  |     |  Web Server  |
 +------------+     +--------------+     +--------------+     +--------------+

 
Configure Pen to load balance to Backend#1, Backend#2, Backend#3 web servers.
[1]Install Pen.
# install from EPEL

[root@dlp ~]#
yum --enablerepo=epel -y install pen
[2]Configure Pen.
[root@dlp ~]#
vi /etc/pen.conf
# create new

# log file

LOGFILE=/var/log/pen.log
# statics report file

WEBFILE=/var/www/pen/webstats.html
# control port

CONTROL=127.0.0.1:10080
# max connections

MAX_CONNECTIONS=256
# sebd X-Forwarded-For header

XFORWARDEDFOR=true
# Round-Robin mode

ROUNDROBIN=true
# listenning port

PORT=80
# number of backends

BACKEND=3
# define backend servers

SERVER1=10.0.0.51:80
SERVER2=10.0.0.52:80
SERVER2=10.0.0.53:80
# create an init script

[root@dlp ~]#
vi /etc/rc.d/init.d/pend
#!/bin/bash

# pend: Start/Stop Pend
# chkconfig: - 90 10
# description: Pen is a light weight simple load balancer.
# pidfile: /var/run/pen.pid

. /etc/rc.d/init.d/functions
. /etc/pen.conf

LOCKFILE="/var/lock/subsys/pen"
PID=/var/run/pen.pid
PROG=/usr/bin/pen
PROGNAME=Pend

RETVAL=0
start() {
    SERVER=`grep "^SERVER" /etc/pen.conf | cut -d= -f2`
    [ $XFORWARDEDFOR = "true" ] && SERVER="-H $SERVER"
    [ $ROUNDROBIN = "true" ] && SERVER="-r $SERVER"
    [ $SSLCERTS ] && SERVER="-E $SSLCERTS $SERVER"

    echo -n $"Starting $PROGNAME: "
    daemon $PROG -w $WEBFILE -x $MAX_CONNECTIONS -p $PID -l $LOGFILE -C $CONTROL -S $BACKEND $PORT $SERVER
    RETVAL=$?
    echo
    [ $RETVAL -eq 0 ] && touch $LOCKFILE
    return $RETVAL
}
stop() {
    echo -n $"Stopping $PROGNAME: "
    killproc $PROG
    RETVAL=$?
    echo
    [ $RETVAL -eq 0 ] && rm -f $PID $LOCKFILE
    return $RETVAL
}
case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    status)
        status -p "$PID" -l $PROG $PROGNAME
        ;;
    restart)
        stop
        start
        ;;
    *)
        echo $"Usage: $0 {start|stop|status|restart}"
        exit 1
esac
exit $?

[root@dlp ~]#
chmod 755 /etc/rc.d/init.d/pend

[root@dlp ~]#
/etc/rc.d/init.d/pend start

Starting Pend: [ OK ]
[root@dlp ~]#
chkconfig --add pend

[root@dlp ~]#
chkconfig pend on
[3]Configure httpd on backend servers to record logs of X-Forwarded-For.
[root@www ~]#
vi /etc/httpd/conf/httpd.conf
# line 497: change

LogFormat "
\"%{X-Forwarded-For}i\"
%l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
[root@www ~]#
/etc/rc.d/init.d/httpd restart
[4]Make sure all works fine to access to the frontend server from a Client with HTTP like follows.

浏览2172 评论0
返回
目录
返回
首页
Centos7 安装配置vsftpd,ftp 530 /ftp 500 报错解决方法 通讯转发、(负载均衡)通讯分发器 G5