1. 程式人生 > >haproxy配置文件參數

haproxy配置文件參數

pat 模塊 remote 日誌類 refresh time 服務器 header file

vim haproxy.cfg

全局配置

global
    log 127.0.0.1   local3  info    //日誌服務器,可將IP改為遠端
    maxconn 100000         //單個進程最大並發連接數
    daemon             //守護進程方式後臺運行
    nbproc  4         //工作進程數量
   ulimit-n 65535 //ulimit的數量限制 chroot /usr/local/haproxy #stats socket /var/lib/haproxy/haproxy.sock mode 600 level admin uid 99 gid 99 daemon cpu-map 1 0 cpu-map 2 1 cpu-map 3 2 cpu-map 4 3 pidfile /usr/local/haproxy/run/haproxy.pid

默認配置defaults

defaults
log global //記錄日誌,這裏可以使用全局配置的日誌配置 mode http //工作模式http layer7,{|http|health},tcp是4層,http是7層,health只會返回ok maxconn 100000 //最大連接數 option forwardfor //後端服務器得到的請求IP一般是haproxy的,為了得到客戶端的IP,需要插入X-Forwardfor-For頭處理,後端服務器則用X-Forwardfor-For方法來獲得客戶端IP contimeout 5000 //連接超時時間 clitimeout 50000 //客戶端超時時間 srvtimeout 50000 //服務器超時時間
  timeout check 2000 //心跳檢測超時
  option httplog     //日誌類別http日誌格式
  option httpclose //每次請求完畢後主動關閉http通道
  option dontlognull //不記錄健康檢查的日誌信息
  option redispatch //serverId對應的服務器掛掉後,強制定向到其他健康的服務器
  option abortonclose //當服務器負載很高的時候,自動結束掉當前隊列處理比較久的連接
  stats refresh 30 //統計頁面刷新間隔
  retries 3 //3次連接失敗就認為服務不可用,也可以通過後面設置
  balance roundrobin //默認的負載均衡的方式,輪詢方式
  #balance source //默認的負載均衡的方式,類似Nginx的ip_hash
  #balance leastconn //默認的負載均衡的方式,最小連接

配置監聽

listen  web     0.0.0.0:80       //表示監聽所有的80請求
    mode    http         //工作模式
    balance roundrobin     //負載均衡的方式
    option  httpclose     //打開支持服務器端主動關閉連接的功能
    option  forwardfor        
          //apache需要在httpd.conf配置文件裏“<IfModule logio_module>”下面添加《LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined》
          //nginx需要在nginx.conf配置文件裏“http”下面添加(需要安裝--with-http_realip_module模塊)
              set_real_ip_from  10.96.141.0/24;
              real_ip_header    X-Forwarded-For;
              real_ip_recursive on;
              log_format main ‘$remote_addr - $remote_user [$time_local] "$request" ‘
                  ‘$status $body_bytes_sent "$http_referer" ‘
                  ‘"$http_user_agent" "$http_x_forwarded_for"‘;
          //IIS:需要安裝高級日誌(IIS7及以下),下載並加載F5XForwardedFor模塊,定義IIS的日誌格式,http://www.loadbalancer.org/blog/iis-and-x-forwarded-for-header
              無需安裝高級日誌(IIS8.5及以上),雙擊日誌——>點擊W3C後面的選擇字段——>點擊添加字段——>字段名稱(x-forwarded-for)、源類型(請求標頭)、源(X-FORWARDED-FOR)——>確定、確定——>右上角的應用,重啟IIS服務即可
    option  httpchk HEAD /index.html HTTP/1.0    //健康檢查
    cookie  SERVERID insert indirect nocache    //客戶端的cookie信息
    server server1 192.168.122.100:80 cookie 1 check inter 2000 rise 2 fall 5
    server server2 192.168.122.200:80 cookie 2 check inter 2000 rise 2 fall 5
        cookie 1        //標識serverid為1
        check inter 2000    //檢測心跳頻率,單位毫秒
        rise 2            //連續2次成功表示服務器可用
        fall 5            //連續5次失敗表示服務器不可用 

haproxy配置文件參數