haproxy

haproxy 的配置文件

global log 127.0.0.1 local0 #log 127.0.0.1 local1 notice #log loghost local0 info maxconn 4096 chroot /home/develop/haproxy uid 99 gid 504 #develop group id daemon nbproc 1 pidfile /home/develop/haproxy/logs/haproxy.pid #debug #quiet defaults log 127.0.0.1 local3 mode http option httplog option httpclose option dontlognull option forwardfor option redispatch retries 2 maxconn 2000 balance roundrobin stats uri /haproxy-stats contimeout 5000 clitimeout 50000 srvtimeout 50000 listen web_proxy 192.168.92.128:8888 option httpchk GET /ping.jsp server s1 192.168.92.128:8871 weight 3 check server s2 192.168.92.128:8072 weight 3 check server s3 192.168.92.128:8073 weight 3 check

一 、查看linux版本:

  uname  -a

返回:

Linux develop 2.6.18-238.el5xen #1 SMP Thu Jan 13 16:41:45 EST 2011 x86_64 x86_64 x86_64 GNU/Linux

内核版本决定了下面 TARGET的值,在安装文件中有各种版本的TARGET的值

二、 安装haproxy : prefix为安装路径

make TARGET=linux26 prefix=/home/develop/haproxy install

三、查看是否安装成功

执行命令: /home/develop/haproxy/sbin/haproxy -v

返回 :

HA-Proxy version 1.4.22 2012/08/09
Copyright 2000-2012 Willy Tarreau <w@1wt.eu>

证明haproxy安装成功

四、配置启动程序的用户组

vim  etc/group

dba:x:501:oracle
oper:x:502:oracle
work:x:503:
develop:x:504:

本系统中develop 的用户组编号为504,将该值填写到 haproxy.cfg 的global节的gid中说明可以由develop用户组进行启动haproxy

五、启动命令
su - develop

cd /home/develop/haproxy/sbin

执行 :/home/develop/haproxy/sbin/haproxy -f /home/develop/haproxy/sbin/haproxy.cfg

报错:
[WARNING] 316/142423 (7814) : [/home/develop/haproxy/sbin/haproxy.main()] Cannot raise FD limit to 8206.
[ALERT] 316/142423 (7814) : [/home/develop/haproxy/sbin/haproxy.main()] Cannot create pidfile /home/haproxy/logs/haproxy.pid

mkdir /home/develop/haproxy/logs

就可以了

六 、查看haproxy状态,要保证httpd已经启动 , service httpd start &

http://192.168.92.128:8888/haproxy-stats

HAProxy 錯誤排除

在上述啟動時, 若有出現下述錯誤:

Starting haproxy: [ALERT] 015/191034 (15631) : Starting proxy webfarm: cannot bind socket...on both load balancers

[ALERT] 056/103843 (1358) : Starting proxy www-balancer: cannot bind socket

解法

  • 暫時解法, 直接先修改設定, 讓它先跑起來:

    sysctl -e net.ipv4.ip_nonlocal_bind=1

  • 永久解法, 讓開機時自動設此參數.
    1. sysctl -a | grep nonlocal # 看是否已經有設定此參數
    2. vim /etc/sysctl.conf # 最下面加入 net.ipv4.ip_nonlocal_bind=1

不過, 就直接啟動, 沒有做什麼任何的事情, 再來就來看看設定檔, 來把想做的事情設一設~ :)

原文地址:https://www.cnblogs.com/wuxi/p/2768927.html