HAProxy 简单示例及 HAProxy_Log 的简单配置

1、实验拓扑

在这里插入图片描述

2、后端 HTTP 主机配置

2.1 HTTP 主机的安装及 conf 文件配置

[root@Tang-1 ~]# ipinfo
enp1s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.16.141.209  netmask 255.255.255.0  broadcast 172.16.141.255
[root@Tang-1 ~]# rpm -q httpd                            # 安装 HTTPD
httpd-2.4.6-90.el7.centos.x86_64
[root@Tang-1 ~]# cat /etc/httpd/conf.d/mylisten.conf     # 虚拟主机的配置
Listen 8080
<VirtualHost 172.16.141.209:8080>                        # 虚拟主机 1 的配置
	ServerName www.neo.tang
	DocumentRoot "/data/web/neo"
	<Directory  "/data/web/neo">
		AllowOverride None
		Options None
		Require all granted
	</Directory>
</virtualHost>
Listen 80
<VirtualHost 172.16.141.209:80>                         # 虚拟主机 2 的配置
	ServerName www.neo.tang
	DocumentRoot "/data/web/tang"
	<Directory  "/data/web/tang">
		AllowOverride None
		Options None
		Require all granted
	</Directory>
</virtualHost>

2.2 HTTP 虚拟主机的默认网页配置

[root@Tang-1 ~]# cat /data/web/neo/index.html 
<h1>This is neo's website!</h1>
[root@Tang-1 ~]# cat /data/web/tang/index.html 
<h1>This is tang's website!</h1>

2.3 HTTP 虚拟主机的服务启动及网页测试

[root@Tang-1 ~]# systemctl start httpd               # 启动服务
[root@Tang-1 ~]# ss -tnl                             # 查看端口号是否正常启动
State       Recv-Q Send-Q                     Local Address:Port                                    Peer Address:Port              
LISTEN      0      128                                    *:22                                                 *:*                  
LISTEN      0      100                            127.0.0.1:25                                                 *:*                  
LISTEN      0      128                                   :::80                                                :::*                  
LISTEN      0      128                                   :::8080                                              :::*                  
LISTEN      0      128                                   :::22                                                :::*                  
LISTEN      0      100                                  ::1:25                                                :::*                  
[root@Tang haproxy]# curl http://172.16.141.209:80      # 访问虚拟主机的默认网页
<h1>This is tang's website!</h1>
[root@Tang haproxy]# curl http://172.16.141.209:8080    # 访问虚拟主机的默认网页
<h1>This is neo's website!</h1>

3、HAProxy 主机配置(代理配置)

3.1 HAProxy 主机的 haproxy.cfg 文件配置

[root@Tang ~]# ipinfo 
enp1s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.16.141.252  netmask 255.255.255.0  broadcast 172.16.141.255
[root@Tang haproxy]# vim /etc/haproxy/haproxy.cfg 
frontend web
    bind *:80
    default_backend     websrvs

backend websrvs
    balance roundrobin
    server srv1 172.16.141.209:80 weight 1 check
    server srv2 172.16.141.209:8080 weight 2 check

3.2 HAProxy 主机的服务启动

[root@Tang haproxy]# systemctl start haproxy
[root@Tang haproxy]# ss -tnl
State       Recv-Q Send-Q                     Local Address:Port                                    Peer Address:Port              
LISTEN      0      128                                    *:80                                                 *:*                  
LISTEN      0      128                                    *:22                                                 *:*                  
LISTEN      0      100                            127.0.0.1:25                                                 *:*                                 
LISTEN      0      128                                   :::22                                                :::*                          

4、HAProxy 主机配置(log 配置)

4.1 HAProxy 主机的 haproxy.cfg 文件查看

[root@Tang haproxy]# vim /etc/haproxy/haproxy.cfg
global
 	# to have these messages end up in /var/log/haproxy.log you will
    # need to:
    #
    # 1) configure syslog to accept network log events.  This is done
    #    by adding the '-r' option to the SYSLOGD_OPTIONS in
    #    /etc/sysconfig/syslog
    #
    # 2) configure local2 events to go to the /var/log/haproxy.log
    #   file. A line like the following can be added to
    #   /etc/sysconfig/syslog
    #
    #    local2.*                       /var/log/haproxy.log
    #
    log             127.0.0.1 local2

4.2 HAProxy 主机的 Rsyslog 程序的文件配置

[root@Tang ~]# vim /etc/rsyslog.conf 
local2.*                                                /var/log/haproxy/haproxy.log
# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514

# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514

4.3 HAProxy 主机的 Rsyslog 的服务重启

[root@Tang ~]# systemctl start rsyslog         # 启动 Rsyslog
[root@Tang ~]# ss -tnl                         # 查看 514 端口号是否成功监听
State       Recv-Q Send-Q                     Local Address:Port                                    Peer Address:Port              
LISTEN      0      128                                    *:80                                                 *:*                  
LISTEN      0      128                                    *:22                                                 *:*                  
LISTEN      0      100                            127.0.0.1:25                                                 *:*                  
LISTEN      0      25                                     *:514                                                *:*                  
LISTEN      0      128                                   :::22                                                :::*                  
LISTEN      0      25                                    :::514                                               :::*   

5、用户进行访问

5.1 进行访问,看是否能够成功访问(权重配置是否生效)

[root@Tang-2 ~]# ipinfo
enp1s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.16.141.253  netmask 255.255.255.0  broadcast 172.16.141.255
[root@Tang-2 ~]# for i in {1..12}; do curl http://172.16.141.252; done
<h1>This is tang's website!</h1>
<h1>This is neo's website!</h1>
<h1>This is neo's website!</h1>
<h1>This is tang's website!</h1>
<h1>This is neo's website!</h1>
<h1>This is tang's website!</h1>
<h1>This is neo's website!</h1>
<h1>This is neo's website!</h1>
<h1>This is tang's website!</h1>
<h1>This is neo's website!</h1>
<h1>This is tang's website!</h1>
<h1>This is neo's website!</h1>

5.2 查看 HAProxy 的相关日志

[root@Tang ~]# tail /var/log/haproxy/haproxy.log 
Nov  6 14:47:22 neo haproxy[30442]: 172.16.141.253:37450 [06/Nov/2019:14:47:22.692] web websrvs/srv2 0/0/0/1/1 200 292 - - ---- 1/1/0/0/0 0/0 "GET / HTTP/1.1"
Nov  6 14:47:22 neo haproxy[30442]: 172.16.141.253:37452 [06/Nov/2019:14:47:22.705] web websrvs/srv1 0/0/0/1/1 200 293 - - ---- 1/1/0/0/0 0/0 "GET / HTTP/1.1"
Nov  6 14:47:22 neo haproxy[30442]: 172.16.141.253:37454 [06/Nov/2019:14:47:22.719] web websrvs/srv2 0/0/0/1/1 200 292 - - ---- 1/1/0/0/0 0/0 "GET / HTTP/1.1"
Nov  6 14:47:22 neo haproxy[30442]: 172.16.141.253:37456 [06/Nov/2019:14:47:22.732] web websrvs/srv1 0/0/0/1/1 200 293 - - ---- 1/1/0/0/0 0/0 "GET / HTTP/1.1"
Nov  6 14:47:22 neo haproxy[30442]: 172.16.141.253:37458 [06/Nov/2019:14:47:22.744] web websrvs/srv2 0/0/0/1/1 200 292 - - ---- 1/1/0/0/0 0/0 "GET / HTTP/1.1"
Nov  6 14:47:22 neo haproxy[30442]: 172.16.141.253:37460 [06/Nov/2019:14:47:22.757] web websrvs/srv2 0/0/0/1/1 200 292 - - ---- 1/1/0/0/0 0/0 "GET / HTTP/1.1"
Nov  6 14:47:22 neo haproxy[30442]: 172.16.141.253:37462 [06/Nov/2019:14:47:22.770] web websrvs/srv1 0/0/0/1/1 200 293 - - ---- 1/1/0/0/0 0/0 "GET / HTTP/1.1"
Nov  6 14:47:22 neo haproxy[30442]: 172.16.141.253:37464 [06/Nov/2019:14:47:22.783] web websrvs/srv2 0/0/0/1/1 200 292 - - ---- 1/1/0/0/0 0/0 "GET / HTTP/1.1"
Nov  6 14:47:22 neo haproxy[30442]: 172.16.141.253:37466 [06/Nov/2019:14:47:22.796] web websrvs/srv1 0/0/0/1/1 200 293 - - ---- 1/1/0/0/0 0/0 "GET / HTTP/1.1"
Nov  6 14:47:22 neo haproxy[30442]: 172.16.141.253:37468 [06/Nov/2019:14:47:22.809] web websrvs/srv2 0/0/0/1/1 200 292 - - ---- 1/1/0/0/0 0/0 "GET / HTTP/1.1"

5.3 后端 HTTPD 主机的 httpd_access 日志查看

[root@Tang-1 ~]# tail /var/log/httpd/access_log 
172.16.141.252 - - [06/Nov/2019:14:47:22 +0800] "GET / HTTP/1.1" 200 32 "-" "curl/7.29.0"
172.16.141.252 - - [06/Nov/2019:14:47:22 +0800] "GET / HTTP/1.1" 200 33 "-" "curl/7.29.0"
172.16.141.252 - - [06/Nov/2019:14:47:22 +0800] "GET / HTTP/1.1" 200 32 "-" "curl/7.29.0"
172.16.141.252 - - [06/Nov/2019:14:47:22 +0800] "GET / HTTP/1.1" 200 33 "-" "curl/7.29.0"
172.16.141.252 - - [06/Nov/2019:14:47:22 +0800] "GET / HTTP/1.1" 200 32 "-" "curl/7.29.0"
172.16.141.252 - - [06/Nov/2019:14:47:22 +0800] "GET / HTTP/1.1" 200 32 "-" "curl/7.29.0"
172.16.141.252 - - [06/Nov/2019:14:47:22 +0800] "GET / HTTP/1.1" 200 33 "-" "curl/7.29.0"
172.16.141.252 - - [06/Nov/2019:14:47:22 +0800] "GET / HTTP/1.1" 200 32 "-" "curl/7.29.0"
172.16.141.252 - - [06/Nov/2019:14:47:22 +0800] "GET / HTTP/1.1" 200 33 "-" "curl/7.29.0"
172.16.141.252 - - [06/Nov/2019:14:47:22 +0800] "GET / HTTP/1.1" 200 32 "-" "curl/7.29.0"
发布了158 篇原创文章 · 获赞 7 · 访问量 9758

猜你喜欢

转载自blog.csdn.net/weixin_44983653/article/details/102934505
今日推荐