使用 Haproxy + Nginx 实现高可用

本文详细介绍了如何在Linux环境下安装Nginx和Haproxy,配置Web集群、负载均衡,并管理Haproxy的日志,包括使用Rsyslog进行定制。此外,还提及了Java开发者的学习资源和提升技巧。
摘要由CSDN通过智能技术生成

[root@Nginx-1 ~]# wget http://www.nginx.org/download/nginx-1.12.0.tar.gz

[root@Nginx-1 ~]# tar zxf nginx-1.12.0.tar.gz -C /usr/src/

[root@Nginx-1 ~]# useradd -M -s /sbin/nologin nginx # 创建 Nginx 运行用户

[root@Nginx-1 ~]# cd /usr/src/nginx-1.12.0/

[root@Nginx-1 nginx-1.12.0]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx && make && make install

1)分别在两台 Nginx 上创建页面:

[root@Nginx-1 ~]# echo “

this is web111

” > /usr/local/nginx/html/index.html

[root@Nginx-2 ~]# echo “

this is web222

” > /usr/local/nginx/html/index.html

2)启动 Nginx:

[root@Nginx-1 ~]# /usr/local/nginx/sbin/nginx

[root@Nginx-1 ~]# netstat -anpt | grep nginx

2.安装 Haproxy 服务


[root@Haproxy ~]# yum -y install pcre-devel bzip2-devel

[root@Haproxy ~]# tar zxf haproxy-1.5.19.tar.gz -C /usr/src/

[root@Haproxy ~]# cd /usr/src/haproxy-1.5.19/

[root@Haproxy haproxy-1.5.19]# make TARGET=linux26 # 64位系统

[root@Haproxy haproxy-1.5.19]# make install # 安装

1)配置 Haproxy

[root@Haproxy haproxy-1.5.19]# mkdir /etc/haproxy # 创建配置文件目录

[root@Haproxy haproxy-1.5.19]# cp examples/haproxy.cfg /etc/haproxy/ # 将配置文件复制到刚才目录中

[root@Haproxy haproxy-1.5.19]# cd

[root@Haproxy ~]# vim /etc/haproxy/haproxy.cfg

this config needs haproxy-1.1.28 or haproxy-1.2.1

global

log 127.0.0.1 local0 # 配置日志记录. local0 为日志设备. 默认存放到系统日志

log 127.0.0.1 local0 notice # notice 为日志级别. 通常为 24 个级别

#log loghost local0 info

maxconn 4096 # 最大连接数

uid 99 # 用户ID

gid 99 # 组ID

daemon

#debug

#quiet

defaults

log global

mode http # 模式为 HTTP

option httplog # 采用 HTTP 日志格式记录日志

option dontlognull

retries 3 # 检测节点服务器失败次数. 连续达到三次失败. 则认为节点不可用

redispatch # 当服务器负载很高时. 自动结束当前队列处理比较久的连接

maxconn 2000 # 最大连接数

contimeout 5000 # 连接超时时间

clitimeout 50000 # 客户端超时时间

srvtimeout 50000 # 服务器超时时间

listen webcluster 0.0.0.0:80 # 定义一个 Web 应用

option httpchk GET /index.html # 检测服务器的 index.html 文件

balance roundrobin # 负载调度器算法使用轮询算法

server inst1 192.168.1.2:80 check inter 2000 fall 3 # 指定群集服务池中服务器 IP

server inst2 192.168.1.3:80 check inter 2000 fall 3 # 这两个是 Nginx 的 IP

在这里插入图片描述

2)创建自启动脚本

[root@Haproxy ~]# cp /usr/src/haproxy-1.5.19/examples/haproxy.init /etc/init.d/haproxy

[root@Haproxy ~]# chmod +x /etc/init.d/haproxy # 添加可执行权限

[root@Haproxy ~]# ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy # 软链接. 优化执行路径

[root@Haproxy ~]# /etc/init.d/haproxy restart # 重启 Haproxy

在这里插入图片描述

3.验证 Web 群集


1)验证负载均衡(使用浏览器访问:http://192.168.1.10

在这里插入图片描述

再次访问:

在这里插入图片描述

2)验证高可用(在任意一台 Nginx 服务器上关闭网站服务)

[root@Nginx-1 ~]# killall -s QUIT nginx

[root@Nginx-1 ~]# netstat -anpt | grep 80

在客户机上使用浏览器访问测试:

在这里插入图片描述

  • 刷新发现还是这个页面,并不会切换,原因是刚才关闭了一台 Nginx 服务器。

当测试成功后再打开 Nginx 即可

[root@Nginx-1 ~]# /usr/local/nginx/sbin/nginx

4.Haproxy 日志管理


  • Haproxy 的日志默认是输出到系统的 syslog 中,查看起来不是很方便,为了方便管理 haproxy 的日志,在生产环境中单独定义。

修改 Haproxy 配置文件中关于日志配置的选项,将原有的日志配置更改为以下配置:

[root@Haproxy ~]# vim /etc/haproxy/haproxy.cfg

global

log /dev/log local0 info

log /dev/log local1 notice

[root@Haproxy ~]# /etc/init.d/haproxy restart # 重启 Haproxy

在这里插入图片描述

1)修改 Rsyslog 配置

[root@Haproxy ~]# vim /etc/rsyslog.d/haproxy.conf

添加:

将 Haproxy 的 info 日志输出到 /var/log/haproxy/haproxy-info.log 文件中

if ($programname == ‘haproxy’ and $syslogseverity-text == ‘info’) then -/var/log/haproxy/haproxy-info.log

& ~

将 Haproxy 的 notice 日志输出到 /var/log/haproxy/haproxy-notice.log 文件中

if ($programname == ‘haproxy’ and $syslogseverity-text == ‘notice’) then -/var/log/haproxy/haproxy-notice.log

& ~

[root@Haproxy ~]# systemctl restart rsyslog # 重启 Rsyslog 服务

  • 如果报错如下,那可能是因为刚刚的配置文件有错误。

在这里插入图片描述

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

最后

做任何事情都要用心,要非常关注细节。看起来不起眼的、繁琐的工作做透了会有意想不到的价值。
当然要想成为一个技术大牛也需要一定的思想格局,思想决定未来你要往哪个方向去走, 建议多看一些人生规划方面的书籍,多学习名人的思想格局,未来你的路会走的更远。

更多的技术点思维导图我已经做了一个整理,涵盖了当下互联网最流行99%的技术点,在这里我将这份导图分享出来,以及为金九银十准备的一整套面试体系,上到集合,下到分布式微服务

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
导图分享出来,以及为金九银十准备的一整套面试体系,上到集合,下到分布式微服务**

[外链图片转存中…(img-VrIy0ovI-1713522184209)]

[外链图片转存中…(img-nrOoGFcM-1713522184209)]

[外链图片转存中…(img-ioHL4rqF-1713522184209)]

[外链图片转存中…(img-MEJ6yJ4D-1713522184210)]

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值