千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > 快速搭建一个高可用的Nginx负载均衡器

快速搭建一个高可用的Nginx负载均衡器

来源:千锋教育
发布人:xqq
时间: 2023-12-26 09:16:09 1703553369

快速搭建一个高可用的Nginx负载均衡器

在网络服务中,负载均衡器是一个非常重要的组件,它可以将网络流量均匀分配到多个后端服务器上,从而提高系统的可用性、容错性和性能。在本文中,我们将介绍如何快速搭建一个高可用的Nginx负载均衡器。

1. 安装Nginx

首先,我们需要安装Nginx。在Ubuntu 18.04系统上,可以通过以下命令安装:

$ sudo apt-get update$ sudo apt-get install nginx

安装完成后,可以通过以下命令检查Nginx是否正在运行:

$ sudo systemctl status nginx

2. 配置Nginx作为负载均衡器

配置Nginx作为负载均衡器需要编辑Nginx配置文件。在Ubuntu 18.04系统上,Nginx的默认配置文件为/etc/nginx/nginx.conf。我们可以通过以下命令编辑该文件:

$ sudo nano /etc/nginx/nginx.conf

在配置文件中添加以下配置:

http {        upstream backend {                server backend1.example.com;                server backend2.example.com;                server backend3.example.com;        }        server {                listen 80;                location / {                        proxy_pass http://backend;                        proxy_set_header Host $host;                        proxy_set_header X-Real-IP $remote_addr;                        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;                }        }}

上述配置文件中,我们定义了三个后端服务器backend1.example.com、backend2.example.com和backend3.example.com,并将它们定义为一个upstream组。然后,我们使用proxy_pass指令将请求转发到upstream组,并在HTTP请求头中添加必要的信息。最后,配置文件中的server块定义了监听80端口的Nginx服务器。

保存配置文件并使用以下命令测试配置文件是否正确:

$ sudo nginx -t

如果配置文件正确,则会输出以下内容:

nginx: configuration file /etc/nginx/nginx.conf test is successful

3. 配置Nginx高可用性

要实现Nginx的高可用性,我们可以使用keepalived。keepalived是一个集成了VRRP协议的软件负载均衡器,它可以将IP地址自动转移给备用服务器。我们可以使用以下命令在Ubuntu 18.04系统上安装keepalived:

$ sudo apt-get install keepalived

然后,我们需要编辑keepalived的配置文件。在Ubuntu 18.04系统上,keepalived的配置文件为/etc/keepalived/keepalived.conf。我们可以使用以下命令编辑该文件:

$ sudo nano /etc/keepalived/keepalived.conf

在配置文件中添加以下配置:

! Configuration File for keepalivedglobal_defs {   router_id LVS_DEVEL}vrrp_script chk_nginx {    script "pidof nginx"    interval 2}vrrp_instance VI_1 {    interface ens3    state MASTER    priority 101    virtual_router_id 51    advert_int 1    authentication {        auth_type PASS        auth_pass 1111    }    virtual_ipaddress {        192.168.1.1/24 dev ens3    }    track_script {        chk_nginx    }}

在上述配置文件中,我们定义了一个名为chk_nginx的脚本,该脚本每2秒检查Nginx进程是否在运行。在vrrp_instance块中,我们将keepalived配置为虚拟路由器实例,并指定了虚拟路由器ID、虚拟IP地址和优先级。在authentication块中,我们指定了密码以保证安全性。最后,在track_script块中,我们添加了chk_nginx脚本以跟踪Nginx进程是否在运行。

保存配置文件并使用以下命令启动keepalived:

$ sudo systemctl start keepalived

现在,我们已经成功搭建了一个高可用的Nginx负载均衡器。测试负载均衡器是否正常工作,可以使用curl命令发送HTTP请求:

$ curl http://192.168.1.1/

如果负载均衡器正常工作,则应该得到类似于以下内容的响应:

Hello, world!

参考资料:

https://www.nginx.com/resources/glossary/load-balancing/

https://www.digitalocean.com/community/tutorials/how-to-set-up-nginx-load-balancing-with-keepalived-on-ubuntu-16-04

https://www.keepalived.org/documentation.html

以上就是IT培训机构千锋教育提供的相关内容,如果您有web前端培训鸿蒙开发培训python培训linux培训,java培训,UI设计培训等需求,欢迎随时联系千锋教育。

tags:
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT