首页 > 系统相关 >nginx四层和七层负载的配置

nginx四层和七层负载的配置

时间:2024-03-07 11:36:07浏览次数:28  
标签:负载 http nginx 七层 server 四层 服务器 backend

四层负载和七层负载是两种不同类型的负载均衡策略,它们分别在网络的不同层次上工作。在Nginx中,这两种负载均衡策略可以通过配置nginx.conf文件来实现。

四层负载(L4 Load Balancing)

四层负载,也称为传输层负载均衡,主要在网络模型的第四层(传输层)上工作。它处理TCP/UDP协议的流量,并根据报文中的目标地址和端口,以及负载均衡设备设置的服务器选择方式,来决定最终选择的内部服务器。四层负载均衡能够拿到的数据只有IP和端口,无法对流量大小进行区分。在Nginx中,四层负载均衡是通过stream模块实现的。

nginx.conf中的配置示例:

stream {  
    upstream backend_tcp {  
        server backend1.example.com:8080;  
        server backend2.example.com:8080;  
    }  
  
    server {  
        listen 80;  
        proxy_pass backend_tcp;  
    }  
}

在这个配置中,stream块定义了一个四层负载均衡上下文。upstream块定义了一个名为backend_tcp的后端服务器组,包含两个服务器。server块监听80端口,并将流量代理到backend_tcp服务器组。

七层负载(L7 Load Balancing)

七层负载,也称为应用层负载均衡,主要在网络模型的第七层(应用层)上工作。它处理HTTP、HTTPS等协议的流量,并根据应用层协议的信息来进行流量分发和负载调度。七层负载均衡可以实现更高级的功能,如URL重写、会话保持、SSL卸载等。在Nginx中,七层负载均衡是通过http模块实现的。

nginx.conf中的配置示例:

http {  
    upstream backend_http {  
        server backend1.example.com;  
        server backend2.example.com;  
    }  
  
    server {  
        listen 80;  
        server_name example.com;  
  
        location / {  
            proxy_pass http://backend_http;  
            proxy_set_header Host $host;  
            proxy_set_header X-Real-IP $remote_addr;  
        }  
    }  
}

在这个配置中,http块定义了一个七层负载均衡上下文。upstream块定义了一个名为backend_http的后端服务器组,包含两个服务器。server块监听80端口,并将流量代理到backend_http服务器组。location块指定了将所有请求代理到后端服务器组,并设置了一些代理相关的参数,如请求头。

注意点

四层负载均衡在Nginx中是通过stream模块来配置的,而不是http模块。在stream模块中,你可以定义upstream块来指定后端服务器组,然后在server块中使用proxy_pass指令将流量代理到这些服务器。但是,在四层负载均衡的上下文中,server块用于定义监听的端口和代理传递的设置,而不是用于匹配URL路径的location块。

标签:负载,http,nginx,七层,server,四层,服务器,backend
From: https://www.cnblogs.com/ydswin/p/18058510

相关文章

  • nginx 同时配置四层和七层负载均衡
    在Nginx中,你可以同时配置四层和七层负载均衡,但这通常需要在不同的配置块中进行。四层负载均衡通常使用stream模块来处理非HTTP/HTTPS流量,而七层负载均衡则使用http模块来处理HTTP和HTTPS请求。以下是一个简化的Nginx配置文件示例,展示了如何同时配置四层和七层负载均衡:#四层负载......
  • nginx rewrite参数详解
    Nginx的rewrite指令用于重写URL,它有几个参数,这些参数定义了如何匹配和重写请求的URL。以下是rewrite指令的常见参数及其说明:Regex:这是一个正则表达式,用于匹配请求的URI。Nginx将使用这个正则表达式来查找与请求URI相匹配的模式。Replacement:这是重写后的URI,可以包含正则表达式......
  • Nginx location 匹配规则
    匹配模式及顺序=用于标准uri前,需要请求字串与uri完全匹配,如果匹配成功就停止向下匹配并立即处理请求。~区分大小写~*不区分大写^~   开头对URL路径进行前缀匹配,并且在正则之前!~ 区分大小写不匹配!~*不区分大小写不匹配^匹配正则开头$匹......
  • nginx反向代理服务器实现postgreSQL
    可访问的地址:192.168.1.200:9856不可访问的地址:192.168.214.133:32222(pg库的地址)在192.168.1.200服务器上安装nginx,设置一个监听的端口(9856),将地址二192.168.214.133:32222映射到这个端口(版本要大于nginx1.9.xxx,stream和http是同级关系,在Navicat上通过连接主机-192.168.1......
  • win11搭建nginx+php环境
    win11搭建nginx+php环境nginx配置nginx-1.24.0/nginx.conf#passthePHPscriptstoFastCGIserverlisteningon127.0.0.1:9000#location~\.php${roothtml;fastcgi_pass127.0.0.1:9000;fastcg......
  • Dockerfile 部署uwsgi+nginx+django
    背景最近在和组内小伙伴一起写接口测试平台后端,使用的是drf框架,目前已经完成部分工作。在和前端联调试另一个小伙伴使用uwsgi部署起来了,我感觉这样部署很low,因为之前有了解过docker所以想着这一次彻底把docker给学会吧,于是就有了这篇文章。首先先看一下我的目录结构i......
  • nginx 根据useragent 标识特征过滤流量
    配置文件如下:http{map$http_user_agent$is_allowed_user_agent{default0;"~*Chrome/101.0.4951.64"1;}server{listen9999;server_nameyour_domain.com;location/{if($is_allo......
  • nginx在windows下的使用二
    一、反向代理,多台机器1.需求和目的:nginx代理两台服务器,这两台服务器使用tomcat模拟浏览器访问http://localhost:9001/beijing/index.html,通过nginx,跳转到一个tomcat上(端口8080),浏览器上显示beijing浏览器访问http://localhost:9001/shanghai/index.html,通过nginx,跳转到一个tom......
  • ConfigMap挂载与Subpath在Nginx容器中的应用
    本文分享自华为云社区《nginx.conf以configmap文件形式挂载到nginx容器中以及subpath使用场景》,作者:可以交个朋友。背景nginx.conf通过configmap文件形式挂载到容器内,可以更加方便的修改nginx.conf配置方案简介将配置文件nginx.conf以configmap文件的方式挂载到容器中。为了更......
  • Nginx负载均衡配置方法
    首先,确保已经安装了nginx,然后编辑配置文件/etc/nginx/nginx.conf第一步:定义upstream组在配置文件中定义一个upstream组,用于指定一组后端服务器。每个服务器可以通过IP地址和端口号来指定,并且可以为每个服务器设置权重(weight)以表示它们处理请求的能力。upstreambackend_group......