您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
http反向代理及haproxy
发布时间:2019-07-16 14:38:16编辑:雪饮阅读()
前面有讲过应用层负载均衡的nginx,其实在应用层的负载均衡还有比较出名的haproxy,并且单纯在性能这块儿是比nginx上更强劲,而且其还有一个单独的后端集群节点管理及监控系统,是web可视化的界面很是友好。今天就讲下haproxy的负载均衡。
环境:
redhat6.4-i386
网络拓扑架构
每个后端使用相同的内网网卡(仅主机),并为前端服务器也准备一个内网网卡(仅主机),然后将每个后端的网关指向前端服务器的内网网卡的ip地址,这样以来前后端就可以通过内网通信了。接着前端服务器还需要一个可以对外开放的访问的网卡。这样的整体架构下再负载均衡网络请求转发时可以用内网保证了数据请求的安全,同时用另外一个网卡可以提供外部访问算是不错的拓扑了。
然后只需要后端服务器提供web服务即可。
redhat6.4中仅主机网卡设置
先将如下配置中eth1所在条目删除或注释掉
[root@localhost ~]# vi /etc/udev/rules.d/70-persistent-net.rules
然后关机并添加仅主机网卡,添加后启动操作系统
然后设置ip地址,这里设置的是128网段,具体网段以虚拟网络编辑器中给分配的网段为准
[root@localhost ~]# ifconfig eth1 192.168.128.7/24 up
[root@localhost ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:B1:59:4D
inet addr:192.168.2.155 Bcast:192.168.2.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:feb1:594d/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:215 errors:0 dropped:0 overruns:0 frame:0
TX packets:198 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:23644 (23.0 KiB) TX bytes:26796 (26.1 KiB)
Interrupt:19 Base address:0x2000
eth1 Link encap:Ethernet HWaddr 00:0C:29:B1:59:57
inet addr:192.168.128.7 Bcast:192.168.128.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:feb1:5957/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:796 (796.0 b)
Interrupt:16 Base address:0x2080
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
每个后端只需要指定网关为前端内网地址即可:
route add default gw 192.168.128.7
haproxy负载均衡器配置
安装
rpm -ivh /test/Packages/haproxy-1.4.22-3.el6.i686.rpm
配置rsyslog
配置/etc/sysconfig/rsyslog
[root@localhost ~]# cat /etc/sysconfig/rsyslog
# Options for rsyslogd
# Syslogd options are deprecated since rsyslog v3.
# If you want to use them, switch to compatibility mode 2 by "-c 2"
# See rsyslogd(8) for more details
SYSLOGD_OPTIONS="-c 2 -r"
配置/etc/rsyslog.conf
在
local7.* /var/log/boot.log
下面一行添加如下:
local2.* /var/log/haproxy.log
然后重启rsyslog服务
[root@localhost ~]# service rsyslog restart
Shutting down system logger: [ OK ]
Starting system logger: [ OK ]
配置haproxy负载均衡
/etc/haproxy/haproxy.cfg
将其中default段之下的全部清理并换成如下:
listen stats
mode http
bind *:1080
stats enable
stats hide-version
stats uri /haproxyadmin?stats
stats realm Haproxy\ Statistics
stats auth admin:admin
stats admin if TRUE
frontend web
bind *:80
log global
option httpclose
option logasap
option dontlognull
capture request header Host len 20
capture request header Referer len 60
default_backend servers
backend servers
balance roundrobin
server web1 192.168.128.8:80 check maxconn 4000
server web2 192.168.128.9:80 check maxconn 3000
然后启动haproxy即可
[root@localhost ~]# service haproxy start
Starting haproxy: [ OK ]
测试
用ie浏览器测试效果比较好,每次刷新一下就会自动负载均衡到不同的服务器,其它浏览器有可能有缓存导致测试无效。
然后在如下地址可以查看后端集群的性能状况等信息
用户名和密码都是admin
然后尝试停止后端某个集群节点的web服务并刷新当前界面就会能看到该节点在这里也显示为停止了,反之当某个节点上线后这里刷新了也能看到。
关键字词:http,haproxy
上一篇:swoole2.2.0+php7.0.19实现websocket的客户端与服务器端
下一篇:lamp与lnmp关于mysqli的踩坑总结PHP Startup: Invalid library (maybe not a PHP library)
相关文章
- centos7.6编译安装php7.2及整合mysql5.7与httpd2.4.9
- 配置nginx做为webServer详解
- 马哥linux运维学习笔记-编译安装LAMP之配置httpd以Fas
- 马哥linux运维学习笔记-编译安装LAMP之httpd-2.4.4
- 马哥linux运维学习笔记-基于openssl的https服务配置
- 马哥linux运维学习笔记-httpd虚拟主机
- 马哥linux运维学习笔记-httpd属性配置
- centos7.3下快速配置(宝塔)nginx1.12网站https(ssl)访
- 解决java使用原生http接口HttpURLConnection 报403错
- php网站安全卫士-https(ssl)-https协议配置