广告
返回顶部
首页 > 资讯 > 服务器 >nginx七层负载均衡配置详解
  • 236
分享到

nginx七层负载均衡配置详解

2024-04-02 19:04:59 236人浏览 才女
摘要

目录一、负载均衡介绍二、Nginx下载安装1、下载nginx源码包2、安装并启用三、nginx七层负载均衡配置real server设置:客户端设置:四、nginx扩充调度算法(sticky)1.下载扩展包2.编译前做一些优化:3.重新编译

目录
  • 一、负载均衡介绍
  • 二、Nginx下载安装
    • 1、下载nginx源码
    • 2、安装并启用
  • 三、nginx七层负载均衡配置
    • real server设置:
    • 客户端设置:
  • 四、nginx扩充调度算法(sticky)
    • 1.下载扩展包
    • 2.编译前做一些优化
    • 3.重新编译

一、负载均衡介绍

1)四层负载均衡

所谓四层就是基于IP+端口的负载均衡

四层负载均衡,是指OSI七层模型中的传输层,传输层已经支持tcp/IP的控制,所以只需要对客户端的请求进行TCP/IP协议的包转发就可以实现负载。

2)七层负载均衡

七层是基于URL等应用层信息的负载均衡

七层负载均衡是在应用层,它可以完成很多应用方面的协议请求

3)四层与七层区别

        四层负载均衡数据在底层就进行了分发,而七层负载均衡数据包则是在最顶层进行分发,七层负载均衡效率没有四层负载均衡高。

         四层负载均衡可以用来解决七层负载均衡端口限制问题(七层负载均衡最大使用65535个端口号)

        但是四层不支持协议的转发(Http,https,DNS等)只支持IP,不识别域名。

        七层负载均衡更贴近于服务,如HTTP协议就是七层协议

        支持很多功能,比如支持http信息的改写、头部信息的改写、安全应用规则控制、URL匹配规则控制、以及转发、rewrite等一些规则,在应用层的服务里面可以做的内容更多。

二、nginx下载安装

1、下载nginx源码包

nginx网站域名:http://nginx.org/

[root@server1 ~]# wget http://nginx.org/download/nginx-1.20.2.tar.gz
 
[root@server1 ~]# ls
nginx-1.20.2.tar.gz
 
[root@server1 ~]# tar -zxf nginx-1.20.2.tar.gz 
[root@server1 ~]# ls
nginx-1.20.2  nginx-1.20.2.tar.gz

2、安装并启用

[root@server1 ~]# cd nginx-1.20.2
[root@server1 nginx-1.20.2]# ls
auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  man  README  src
 
[root@server1 nginx-1.20.2]# ./configure --help #可以看到可用参数
 
[root@server1 nginx-1.20.2]# ./configure --with-http_ssl_module --with-http_stub_status_module  --prefix=/usr/local/nginx
【注:此命令是安装一些模块,此命令必须在nginx源码目录下执行】

解决:

yum install -y GCc

继续编译

解决:

yum install -y pcre-devel 

编译成功

此时生成了文件Makefile,此文件会指导我们进行make(将源码编译成本系统可以用的可执行程序)

make完成后,会在该目录下的objs/nginx下生成nginx执行程序,再进行make install 

完成后所有编译好的nginx程序都在指定的路径 /usr/local/nginx下,做一个软连接链接到/usr/local/bin下

[root@server1 ~]# ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/  ##建立软连接
[root@server1 ~]# which nginx
/usr/local/bin/nginx

检测语法正确后启动nginx

[root@server1 ~]# /usr/local/nginx/sbin/nginx -t   ##查看语法是否有误
[root@server1 ~]# nginx                            ##启动nginx
[root@server1 ~]# nginx -s reload                  ##重新加载nginx
[root@server1 ~]# nginx -s stop                    ##停掉nginx

访问http://172.25.254.1

注意:不能多次启动nginx,每次启动完成后要用nginx -s stop 关闭nginx,因为80端口不能被多次占用

三、nginx七层负载均衡配置

/usr/local/bin/nginx/nginx.conf 为nginx的主配置文件

real server设置:

开启server2、server3虚拟机做负载均衡后端服务器

[root@server2 ~]# systemctl start httpd
echo server2 > /var/www/html/index.html
[root@server3 ~]# systemctl start httpd
echo server3 > /var/www/html/index.html

nginx配置:

补:

可以加权重

也可以更换负载均衡算法

如要升级real server,手动下线

自己写一个模块:

修改配置文件后:

[root@server1 ~]# nginx -t
[root@server2 ~]# nginx -s reload

客户端设置:

[root@westos_student72 westos]# vim /etc/hosts
172.25.254.1 server1  www.westos.org

测试

[root@westos_student72 westos]# curl www.westos.org
server2
[root@westos_student72 westos]# curl www.westos.org
server3
[root@westos_student72 westos]# curl www.westos.org
server2
[root@westos_student72 westos]# curl www.westos.org
server3
[root@westos_student72 westos]# curl www.westos.org
server2
[root@westos_student72 westos]# curl www.westos.org
server3

关闭server2的httpd服务:

[root@westos_student72 westos]# for i in {1..10}; do curl www.westos.org;done
server3
server3
server3
server3
server3
server3
server3
server3
server3
server3

nginx不再对server2进行调度,说明nginx对后端自带健康检测。

若此时再把server3挂掉:

系统报错,没有可用后端 ,此时我们可以这样设置:

四、nginx扩充调度算法(sticky)

ip_hash调度算法比较符合客户使用习惯,算法为了保证连接稳定根据客户端ip进行负载均衡,相同客户端IP访问时,会访问到同一服务端,一个sever对一个IP。

ip_hash算法缺陷在于:客户端发送请求到nginx服务器,再由nginx服务器到后端RS,后端RS再返回到nginx服务器再返回客户端,所以后端RS不知道是谁访问了自己。

改进:可以用Sticky cookie来实现,类似于浏览器的cookie。客户端发送请求时,后端RS返回信息时会将session信息传回客户端,客户端存到浏览器中,这是RS分配给每一个客户端的,以后每次请求RS就通过这个cookie来判断是哪个客户端。

开源文档中显示此功能只有Nginx Plus才有,此时我们就要先扩充一下我们的调度算法:加上sticky模块重新编译。

1.下载扩展包

扩展包名字:nginx-Goodies-nginx-sticky-module-ng-08a395c66e42.zip

下载扩展包,安装解压工具并解压

2.编译前做一些优化:

关闭gcc的debug模式,这样编译出的二进制程序会更小

[root@server1 nginx-1.20.2]# vim auto/cc/gcc

关闭版本显示

[root@server1 nginx-1.20.2]# vim src/core/nginx.h

3.重新编译

由于nginx是静态编译,所以每次增加新功能时都需要重新编译,而且要加载之前的所有参数

[root@server1 nginx-1.20.2]# cd nginx-1.20.2
[root@server1 nginx-1.20.2]# nginx -s stop ##编译前停掉nginx
[root@server1 nginx-1.20.2]# make clean  ##清除原来编译的内容
 
[root@server1 nginx-1.20.2]# ./configure --with-http_ssl_module --with-http_stub_status_module --prefix=/usr/local/nginx --add-module=/root/nginx-goodies-nginx-sticky-module-ng-08a395c66e42

编译make

[root@server1 nginx-1.20.2]# make

注意不要进行make install安装,因为软件已经安装过,现在直是去更新,执行make install 会进行覆盖安装

覆盖原二进制程序

[root@server5 nginx-1.20.2]# cd objs/
[root@server5 objs]# ls
[root@server5 objs]# du -h nginx
[root@server5 objs]# cp nginx /usr/local/nginx/sbin/
cp: overwrite ‘/usr/local/nginx/sbin/nginx'? y
[root@server5 objs]# cd /usr/local/nginx/sbin/
[root@server5 sbin]# ls
nginx
[root@server5 sbin]# du -h nginx 
936K	nginx

测试:

此时nginx就有了sticky的cookie功能

  检测语法没问题后启动nginx:

 用浏览器访问才能看见效果,因为cookie只能存在于浏览器

此时我们发现用浏览器访问只能访问到server2,而用curl压测是负载均衡的。因为浏览器缓存了cookie值,cookie值不变,后端响应的RS也不会变。

到此这篇关于nginx七层负载均衡配置详解的文章就介绍到这了,更多相关nginx 七层负载均衡 内容请搜索编程界以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程界!

--结束END--

本文标题: nginx七层负载均衡配置详解

本文链接: https://www.lsjlt.com/news/34171.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • nginx七层负载均衡配置详解
    目录一、负载均衡介绍二、nginx下载安装1、下载nginx源码包2、安装并启用三、nginx七层负载均衡配置real server设置:客户端设置:四、nginx扩充调度算法(sticky)1.下载扩展包2.编译前做一些优化:3.重新编译...
    99+
    2022-09-23
  • Nginx四层负载均衡的配置指南
    一、四层负载均衡介绍 什么是四层负载均衡 所谓四层负载均衡,也就是主要通过报文中的目标地址和端口,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器。 以常见的TCP...
    99+
    2022-11-12
  • Nginx负载均衡的配置
    这篇文章主要讲解了“Nginx负载均衡的配置”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Nginx负载均衡的配置”吧!1.简单了解Nginx负载均衡【lo...
    99+
    2022-10-18
  • nginx 负载均衡轮询方式配置详解
    一、概述 Nginx的upstream目前支持的分配算法:1、round-robin 轮询1:1轮流处理请求(默认)每个请求按时间顺序逐一分配到不同的应用服务器,如果应用服务器dow...
    99+
    2022-11-13
  • nginx负载均衡如何配置
    要配置nginx负载均衡,您可以按照以下步骤进行操作:1. 安装nginx:首先,您需要在服务器上安装nginx。您可以通过执行以下...
    99+
    2023-09-02
    nginx 负载均衡
  • 怎么配置Nginx负载均衡
    本篇内容主要讲解“怎么配置Nginx负载均衡”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么配置Nginx负载均衡”吧!user nobody;&n...
    99+
    2022-10-19
  • nginx怎么配置负载均衡
    要配置Nginx的负载均衡,可以按照以下步骤进行操作:1. 安装Nginx:首先确保已经安装了Nginx,可以通过apt-get或者...
    99+
    2023-09-07
    负载均衡 nginx
  • nginx负载均衡怎么配置
    这篇文章主要介绍“nginx负载均衡怎么配置”,在日常操作中,相信很多人在nginx负载均衡怎么配置问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”nginx负载均衡怎么配置”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-27
  • 超级详细的nginx负载均衡配置
    目录前言实验准备实验步骤其他负载均衡配置策略总结前言 nginx作为一款企业级的代理服务器,不管是大中小各类生产项目中,均有广泛的使用,尤其是在前后端分离的项目中,nginx作为路由...
    99+
    2022-11-13
  • Nginx负载均衡策略详解
    本篇内容介绍了“Nginx负载均衡策略详解”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!本文只是展示了部分nginx实现负载均衡时可以使用的...
    99+
    2023-06-03
  • Nginx怎么配置TCP负载均衡
    本文小编为大家详细介绍“Nginx怎么配置TCP负载均衡”,内容详细,步骤清晰,细节处理妥当,希望这篇“Nginx怎么配置TCP负载均衡”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。假设Kubernetes集群已...
    99+
    2023-06-27
  • nginx的负载均衡怎么配置
    要配置NGINX的负载均衡,可以按照以下步骤:1. 安装NGINX:首先需要在服务器上安装NGINX。可以使用操作系统的包管理器进行...
    99+
    2023-09-02
    nginx 负载均衡
  • Linux上搭载Nginx负载均衡配置使用案例详解
    目录1,这里我们来说下很重要的负载均衡, 那么什么是负载均衡呢2, 负载均衡的种类3, 这里我们只来说Nginx(其他的大家有兴趣可以自行查阅相关文档)4, 创建两台Nginx服务器5, 搭建Nginx搭建Keepali...
    99+
    2022-06-04
    linux搭载Nginx负载均衡 linux Nginx负载均衡
  • nginx怎么做四层负载均衡
    要在Nginx上实现四层负载均衡,可以使用Nginx的stream模块来完成。下面是实现四层负载均衡的步骤:1. 首先,需要安装Ng...
    99+
    2023-09-07
    负载均衡 nginx
  • Nginx+Tomcat负载均衡集群安装配置案例详解
    目录前言一、Nginx+Tomcat二、配置Nginx服务器三、部署Tomcat应用服务器总结前言 介绍Tomcat及Nginx+Tomcat负载均衡集群,Tomcat的应用场景,然...
    99+
    2022-11-12
  • nginx负载均衡配置哪些参数
    nginx负载均衡配置参数有:1、upstream配置,在http配置下增加即可;2、权重配置,用来解决上游服务器配置不均衡的情况;3、ip_hash配置,使每一个请求按照请求ip的hash结进行分配;4、fair配置,按上游服务器的响应时...
    99+
    2022-10-07
  • Nginx配置Tcp负载均衡的方法
    本文使用Nginx作为代理服务器,用来做负载均衡。只是一个简单的应用示例,并不涉及原理。 (这里主机有限,42.192.22.128主机8000端口用来做代理服务器监听端口,818...
    99+
    2022-11-13
  • Nginx stream 配置代理(Nginx TCP/UDP 负载均衡)
    前奏 我们都知道 nginx 是一款优秀的反向代理服务,用过 nginx 的也应该都知道 upstream,upstream 节点一般置于 http 节点大括号中,常规在 upst...
    99+
    2022-11-12
  • Nginx负载均衡策略选择与配置
    一、引言在构建高可用的web应用程序时,负载均衡是一个重要的部分。负载均衡可以分发用户请求到后端的多个服务器上,实现资源的合理利用,提高系统的可用性和性能。Nginx是一个功能强大的反向代理服务器,具有高效的负载均衡特性。本文将介绍如何选择...
    99+
    2023-10-21
    配置 nginx 负载均衡
  • Centos7上如何配置nginx的负载均衡
    Centos7上如何配置nginx的负载均衡,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。 Centos7上配置nginx的负载均衡 ...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作