haproxy实验笔记

实验规划:

主机名IP地址角色
node01192.168.112.128web01
node02192.168.112.129web02
node03192.168.112.130haproxy

操作系统信息:

1
2
3
4
5
[root@node03 ~] # cat /etc/redhat-release 
CentOS release 6.6 (Final)
[root@node03 ~] # uname -a
Linux node03 2.6.32-504.el6.x86_64  #1 SMP Wed Oct 15 04:27:16 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
[root@node03 ~] #

安装haproxy:

1
[root@node03 ~] # yum -y install haproxy nginx php

安装nginx php:

1
2
[root@node01 ~] # yum -y install nginx
[root@node02 ~] # yum -y install nginx

node01和node02上nginx配置文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
user  nginx;
worker_processes  4;
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
#pid        logs/nginx.pid;
events {
     worker_connections  1024;
}
http {
     include       mime.types;
     default_type  application/octet-stream;
server {
         listen       80;
         server_name  localhost;
         #charset koi8-r;
         #access_log  logs/host.access.log  main;
         location / {
             root   html;
             index  index.html index.htm;
         }
}

node03上haproxy和nginx配置文件

haproxy:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
global
     log         127.0.0.1 local2
     chroot      /var/lib/haproxy
     pidfile     /var/run/haproxy.pid
     maxconn     4000
     user        haproxy
     group       haproxy
     daemon
     # turn on stats unix socket
     stats socket /var/lib/haproxy/stats
defaults
     mode                    http
     log                     global
     option                  httplog
     option                  dontlognull
     option http-server-close
     option forwardfor       except 127.0.0.0/8
     option                  redispatch
     retries                 3
     timeout http-request    10s
     timeout queue           1m
     timeout connect         10s
     timeout client          1m
     timeout server          1m
     timeout http-keep-alive 10s
     timeout check           10s
     maxconn                 3000
listen s-monitor *:90
    mode http
    stats enable
    stats refresh 5s
    stats realm New0ldName
    stats uri /
    stats auth user:123456
frontend  main *:80
     acl url_static       path_beg       -i /static /images /javascript /stylesheets
     acl url_static       path_end       -i .jpg .gif .png .css .js
     use_backend static          if url_static
     default_backend             app
backend static
     balance     roundrobin
     server      static 127.0.0.1:8080 check
backend app
     balance     roundrobin
     server  app1 192.168.112.128:80 check
     server  app2 192.168.112.129:80 check

nginx配置文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
user  nginx;
worker_processes  4;
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
#pid        logs/nginx.pid;
events {
     worker_connections  1024;
}
http {
     include       mime.types;
     default_type  application/octet-stream;
     sendfile        on;
user  nginx;
worker_processes  4;
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
#pid        logs/nginx.pid;
events {
     worker_connections  1024;
}
http {
     include       mime.types;
     default_type  application/octet-stream;
     #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
     #                  '$status $body_bytes_sent "$http_referer" '
     #                  '"$http_user_agent" "$http_x_forwarded_for"';
     #access_log  logs/access.log  main;
     sendfile        on;
     #tcp_nopush     on;
     #keepalive_timeout  0;
     keepalive_timeout  65;
     #gzip  on;
     server {
         listen       8080;
         server_name  localhost;
         #charset koi8-r;
         #access_log  logs/host.access.log  main;
         root    /data/website/app;
         location / {
             #root   html;
             index  index.php index.html index.htm;
         }
         #error_page  404              /404.html;
         # redirect server error pages to the static page /50x.html
         #
         error_page   500 502 503 504  /50x.html;
         location = /50x.html {
             root   html;
         }
         # proxy the PHP scripts to Apache listening on 127.0.0.1:80
         #
         #location ~ \.php$ {
         #    proxy_pass   http://127.0.0.1;
         #}
         # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
         #
         location ~ \.php$ {
             root           html;
             fastcgi_pass   127.0.0.1:9000;
             fastcgi_index  index.php;
             fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
             include        fastcgi_params;
         }


haproxy平滑重启操作:

(1)如果是编译安装 

1
[root@node03 ~] #/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/conf/haproxy.conf  -sf `cat /usr/local/haproxy/var/run/haproxy.pid`

或者

1
[root@node03 ~] #/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/conf/haproxy.conf  -st `cat /usr/local/haproxy/var/run/haproxy.pid`

(2)如果是yum安装

1
[root@node03 ~] # /etc/init.d/haproxy reload


开启日志记录:

编辑/etc/rsyslog.conf和/etc/sysconfig/syslog文件

1
2
3
4
5
6
7
8
9
10
[root@~] # vim  /etc/rsyslog.conf:
  13 $ModLoad imudp   #将注释去除
  14 $UDPServerRun 514  #将注释去除
local3.*          /var/log/haproxy .log  #最下方添加
local0.*          /var/log/haproxy .log  #最下方添加
[root@~] #vi /etc/sysconfig/syslog
#######################################
把SYSLOGD_OPTIONS= "-m 0"
改成 SYSLOGD_OPTIONS= "-r -m 0"
#######################################


相关解释说明:

1
2
3
4
5
-r:打开接受外来日志消息的功能,其监控514 UDP端口;
-x:关闭自动解析对方日志服务器的FQDN信息,这能避免DNS不完整所带来的麻烦;
-m:修改syslog的内部mark消息写入间隔时间(0为关闭),例如240为每隔240分钟写入一次"--MARK--"信息;
-h:默认情况下,syslog不会发送从远端接受过来的消息到其他主机,而使用该选项,则把该开关打开,所有
接受到的信息都可根据syslog.conf中定义的@主机转发过去


重启rsyslog服务

1
[root@~] # systemctl restart rsyslog.service





      本文转自027ryan  51CTO博客,原文链接:http://blog.51cto.com/ucode/1880704,如需转载请自行联系原作者






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值