PEN: HTTP Load Balancer Rumi, August 15, 2015August 15, 2015 This is performed on a CentOS 6.x 64 bit machine 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. Configure Pen to load balance to Backend#1, Backend#2, Backend#3 web servers. # install from EPEL [root@dlp ~]# yum --enablerepo=epel -y install pen 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 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 Related Administrations Configurations (Linux) CentOSLoadBalancerPen
Nextcloud Upgrade Issue via Web January 5, 2024January 5, 2024 My Nextcloud update via web was constantly failing. So looked for alternate CLI methods. Method#1 Using occ cli sudo -u www-data php ./occ upgrade Nextcloud or one of the apps require upgrade – only a limited number of commands are available You may use your browser or the occ upgrade… Read More
Install Perfect Mail Server with ISPConfig and Horde 5.0 on Debian Wheezy- Part-2 October 13, 2014October 13, 2014 Install necessary packages apt-get install php5-sasl php5-intl libssh2-php php5-curl php-http php5-xmlrpc php5-geoip php5-ldap php5-memcache php5-memcached php5-tidy Register the Horde Pear channel pear channel-discover pear.horde.org Set the Horde installation directory pear install horde/horde_role pear run-scripts horde/horde_role You'll be asked the following question: Filesystem installation for base Horde application: /var/www/horde You can… Read More
Flushing IPTables rule and allow all traffic for Debian or Ubuntu March 20, 2023 Flushing all iptables chain rules shell script #!/bin/sh echo “Stopping IPv4 firewall and allowing everyone…” ipt=”/sbin/iptables” ## Failsafe – die if /sbin/iptables not found [ ! -x “$ipt” ] && { echo “$0: \”${ipt}\” command not found.”; exit 1; } $ipt -P INPUT ACCEPT $ipt -P FORWARD ACCEPT $ipt -P… Read More