Chinaunix首页 | 论坛 | 博客
  • 博客访问: 13158
  • 博文数量: 4
  • 博客积分: 230
  • 博客等级: 二等列兵
  • 技术积分: 50
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-20 12:58
文章分类
文章存档

2011年(1)

2010年(2)

2009年(1)

我的朋友

分类:

2010-07-07 11:28:10

Haproxy安装配置

一. 安装和基本部署                        官方网站:haproxy.1wt.eu

安装:修改Makefile 指定到安装位置。例如

#### Installation options.

DESTDIR =

PREFIX = /usr/local/haproxy

SBINDIR = $(PREFIX)/sbin

MANDIR = $(PREFIX)/share/man

DOCDIR = $(PREFIX)/doc/haproxy

# make TARGET=linux26

#make install

可选设置vim彩色显示haproxy.cfg中关键字和语法

            建立目录$HOME/.vim/syntax/haproxy.vim复制其中

            修改$HOME/.vimrc (没有的话复制/etc/vimrc)加入:

au BufRead,BufNewFile haproxy.cfg set ft=haproxy

 

 

注意:其中haproxy.cfg是我指定到这一个文件。默认为haproxy*

这样会让所有非配置文件的haproxy.*包括启动脚本等文件找不到语法颜色

配置文件examples 下的有很多范例根据aclproxy等功能侧重展开的配置,可参考。

          定义好log级别,和chroot目录权限是否为haproxy.cfg中指定的uidgid         

global

     log        localhost local0

     log        localhost local0 notice

     uid        71

     gid        71

     chroot    /usr/local/haproxy/chroot    (注意权限)

     pidfile    /usr/local/haproxy/chroot/haproxy.pid

Log设置 /etc/syslog.conf新加

local0.*                        /var/log/haproxy.log

          /etc/sysconfig/syslog增加

SYSLOGD_OPTIONS="-m 0 -r"

       

 

           重启日志服务# /etc/init.d/syslog  restart

启动脚本examples 下的 haproxy.init 可以使用,如果有需要的话,需要修改其中的相应内容等

          注意:重启脚本里默认的stopstatus选项无法关闭haproxy,提示Faild

          需要修改为:(具体参考/etc/init.d/functions中的各项用法,可能因系统而不同)

killproc -p /usr/local/haproxy/chroot/haproxy.pid haproxy

         

status -p /usr/local/haproxy/chroot/haproxy.pid

排除故障:当一切修改完毕后,执行/etc/init.d/haproxy无任何响应,可能是配置文件中的运行账户权限或着日志等配置错误,并非启动脚本错误!

马上就可以正式启动了! System V 脚本工作正常,start stop status 等各项可以正常使用 !

并且正常返回 [OK]

 

----------------------------------------------------------------------------------------------

附haproxy.cfg配置文件 (提供给tomcat集群做前段负载均衡)

---------------

##---------------------Haproxy for huodong -------------------------#
global
 log 127.0.0.1   local0
 log 127.0.0.1 local1 notice
 maxconn 65536
 chroot /web/Haproxy/chroot
 uid 99
 gid 99
        pidfile /web/Haproxy/logs/haproxy.pid
 stats socket /var/run/haproxy.stat mode 600
 daemon
defaults                       
     mode http
 log global
     option httplog
     retries 3
     option redispatch
     option abortonclose
     maxconn   65536
     contimeout 5000
     clitimeout 30000
     srvtimeout 30000
     timeout check 2000
        option  dontlognull
frontend  haproxy
 bind  0.0.0.0:80
        mode    http
        option  httplog
        option  httpclose
        option  forwardfor
 maxconn 65536
 clitimeout 30000

 capture request  header Host           len 20
        capture request  header User-Agent     len 16
        capture request  header Content-Length len 10
        capture request  header Referer        len 20
        capture response header Content-Length len 10

        # allow other syntactically valid requests, and block any other method
        acl valid_method method GET HEAD POST OPTIONS
        block if !valid_method
        block if HTTP_URL_STAR !METH_OPTIONS
        block if !HTTP_URL_SLASH !HTTP_URL_STAR !HTTP_URL_ABS

        # ... some HTTP content smugling and other various things
        acl forbidden_hdrs hdr_cnt(host) gt 1
        acl forbidden_hdrs hdr_cnt(content-length) gt 1
        acl forbidden_hdrs hdr_val(content-length) lt 0
        acl forbidden_hdrs hdr_cnt(proxy-authorization) gt 0
        block if forbidden_hdrs

        # block annoying worms that fill the logs...
        acl forbidden_uris url_reg -i .*(\.|%2e)(\.|%2e)(%2f|%5c|/|\\\\)
        acl forbidden_uris url_sub -i %00

阅读(2499) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~