nginx反向代理与负载均衡

Nginx反向代理与负载均衡 Nginx反向代理与负载均衡一. Nginx 反向代理1.1 反向代理介绍1.2 Nginx 反向代理1.2.1 Nginx 反向代理生产环境典型架构1.2.2 反向代理配置参数1.2.3 Nginx 反向代理示例将 http 请求代理到单台后端服务器代理时指定 location反向代理的缓存功能非缓存场景压力测试在代理服务器配置缓存访问并验证缓存开启缓存后压力测试加头部报文信息验证头部信息1.2... 阅读详情

反向代理

反向代理是nginx被使用的比较多的功能,nginx接收前端发送来的请求,根据所指定的不同的匹配规则,将请求转发到具体的服务器(组)去进行处理。
反向代理的设置通常使用proxy_pass指令,它支持多种格式,语法结构为:

proxy_pass URL;

URL是指定的用来接收处理请求的服务器地址,支持域名方式、IP(:PORT)方式以及unix套接字方式。
如果被代理服务器是一组服务器,则可以使用upstream来配置服务器组。

upstream my_servers1 
{
    server www.jjj.com;
    server 10.0.0.1;
    server 10.0.0.2:8090;
}

来看一个简单的配置:

upstream myaliyun {
        server 45.93.23.19;
        server 45.93.23.20;
}
server {
        listen 9999;
        location / {
                proxy_pass http://myaliyun;
        }
}

这是我本地虚拟机上的一套配置,监听了9999端口,将所有请求转发到myaliyun服务器组,这个服务器组包含了19/20两台服务器,因为没有指定方式,默认就会使用轮询方式分派请求。
所以,当执行请求http://10.0.0.1:9999/a.php时,请求被转发到19(或20)上http://45.93.23.19/a.php。
如果被代理的服务器有端口限制的话,在配置中需要指明,例如19服务器使用了1070端口:

server {
        listen 9999;
        location / {
                proxy_pass http://45.93.23.19:1070;
        }
}

这样在请求http://10.0.0.1:9999/a.php时,请求就会被转发到http://45.93.23.19:1070/a.php,有端口限制却未进行设置就会导致错误。

proxy_pass指令中的URL变量如何设置,对最后请求转发的结果有很大的影响。上面的例子中proxy_pass的URL参数都没有包含URI,所以请求是直接替换的URL地址部份,而URI部份参数并没有产生变化。
看下面这个例子,proxy_pass的URL参数包含了URI的情况:

server {
        listen 9999;
        location / {
                proxy_pass http://45.93.23.19:1070/Api/;
        }
}
server {
        listen 9988;
        location /server/ {
                proxy_pass http://45.93.23.19:1070/Api/;
        }
}

1、请求http://10.0.0.1:9999时,请求转发到的是http://45.93.23.19:1070/Api/index.html;
2、请求http://10.0.0.1:9988/server时,请求转发到的是http://45.93.23.19:1070/Api/index.html;
3、请求http://10.0.0.1:9988/server/a.php时,请求转发到http://45.93.23.19:1070/Api/a.php;
区别是什么?当proxy_pass的URL参数中包含了URI时,location匹配的部份会整个的被proxy_pass的URL参数给替换掉,URI就会发生变化。如果不希望请求的URI发生变化,那就不要指定proxy_pass的URL参数的URI。

还有一个proxy_pass的URL参数末尾是否加斜杠”/”的问题,如下的这种形式:

server {
        listen 1122;
        location /server/ {
                #配置1
                #proxy_pass http://45.93.23.19:1070;
                #配置2
                #proxy_pass http://45.93.23.19:1070/;
        }
}

当放开配置1的注释使配置1生效时,访问http://10.0.0.1:1122/server/a.php,就会被转发到http://45.93.23.19:1070/server/a.php,整个URI是被完全转发的。
当放开配置2的注释使配置2生效时,访问http://10.0.0.1:1122/server/a.php,就会被转发到http://45.93.23.19:1070/a.php,URI被改变了。配置2末尾的”/”也相当于URI,它替换掉了/server/。

通常,被代理服务器接收到的请求头信息,都是nginx代理服务器的信息,如果希望得到真实的前端请求头信息,可以在location块中添加以下配置:

proxy_set_header        Host            $host;
proxy_set_header        X-Real-IP       $remote_addr;
proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;

负载均衡

负载均衡和前面的反向代理是相关联的,主要用到的就是proxy_pass和upstream指令,通过upstream指令指定一个服务器组,以及服务器组内成员的负载分配方式,然后通过proxy_pass将请求转发到upstream指定的服务器组,由指定的负载分配方式来选择出1个接收处理请求的服务器实体。
负载分配方式默认为轮询方式,也可以选择加权轮询、 ip hash、url hash等其它方式。

upstream my_balance_servers
{
    server 10.0.0.1:9999;
    server 10.0.0.2:9999;
    #server 10.0.0.3:9999 weight=2; 
    #weight表示加权值,不设置则默认为1,都不设置则表示使用一般轮询规则

    #ip hash; #设置负载分配方式为ip hash
}

可以对特定的请求进行负载分担,例如有一组服务器提供html image浏览,另有一组服务器提供api接口调用,就可以分别指定它们的负载。

upstream image_balance_servers
{
    server 10.0.0.1;
    server 10.0.0.2;
    server 10.0.0.3;
    ip hash;
}
upstream api_balance_servers
{
    server 10.0.0.10;
    server 10.0.0.11;
}
server
{
    listen 80;
    ……
    location /image/ {
        proxy_pass http://image_balance_servers;
    }
    location /api/ {
        proxy_pass http://api_balance_servers;
    }
}

这样,在调用http://ip:port/image/aa时,请求会被转发到image_balance_servers组中,使用ip hash规则来挑选出接收处理请求的服务器。
在调用http://ip:port/api/bbq时,请求会被转发到api_balance_servers服务器组中,使用一般轮询方式挑选出接收处理请求的服务器。

群晖Web Station实战:从零搭建个人静态导航站 本文详细介绍了如何利用群晖NAS自带的Web Station套件,从零开始搭建个人静态导航站。通过安装Web Station、上传静态网站源码、配置网页服务与网络门户等步骤,无需代码基础即可实现内网访问。文章还分享了文件权限设置、个性化定制及常见问题排查等实用技巧,帮助用户高效管理个人常用网址,充分挖掘NAS的服务器潜能。 阅读详情

相关推荐

具身智能端到端大模型VLA (Vision Language Action)

在语言为条件的机器人任务中,策略必须具备理解语言指令、视觉感知环境并生成适当动作的能力,这就需要VLA的。例如,在自动驾驶领域,传统的做法是将感知、预测、规划等步骤分开处理,而VLA则试图用一个统一的框架来替代这种分立的方法。另外,VLA的模型对于算力的需求很大,单片AI算力1000Tops的Thor大概率会延期发布,加上英伟达芯片的量产时间与成本挑战,以及在国内的应用情况,对车企而言是个大问题。以谷歌DeepMind推出的RT-2为例,该模型可以在新的物体、背景和环境中表现出显著改善的性能。

具身智能机器人 1万+

一篇文章搞定 Nginx 反向代理与负载均衡

代理 要想弄明白反向代理,首先要知道啥是正向代理,要搞懂正向代理只需要知道啥是代理即可。代理其实就是一个中介,在不同事物或同一事物内部起到居间联系作用的环节。比如买票黄牛,房屋中介等等。 在互联网中代理更多指的是代理服务器,代理服务器位于客户端和服务器之间,它充当两者之间的中介。 正向代理 正向代理(forward proxy):是一个位于客户端和目标服务器之间的服务器(代理服务器),为了从目标服务器取得内容,客户端向代理服务器发送一个请求并指定目标,然后代理服务器向目标服务器转交请求并将获得的内容返

哈喽沃德先生的博客 1万+

安装Quartus-II 13 和Modelsim

目录一、Quartus-II安装1.Quartus-II 13下载2.Quartus-II 13安装3.Quartus-II 13注册二、Modelsim安装 实验目的:安装Quartus-II 13 和Modelsim 实验环境:Windows10 参考资料:Quartus-II安装及使用 一、Quartus-II安装 1.Quartus-II 13下载 正点原子官方资料下载 百度网盘下载链接: https://pan.baidu.com/s/1a9d-bq9RZmWrRV542X4IEA 提取码:

qqq080的博客 8613

Nginx反向代理及负载均衡

nginx反向代理及负载均衡  nginx反向代理实战  什么是代理服务器  为什么要使用代理服务器  反向代理 VS 正向代理  Nginx正向代理实战  Nginx反向代理实战  nginx负载均衡实战  nginx反向代理案例  反向代理多虚拟主机节点服务器企业案例  经过反向代理后的节点服务器记录用户IP企业案例  根据URL中的目录地址实现代理转发案例  根据客户端的设备(user_agent)转发  根据扩展名转发的应用场景

Starry__Sky222的博客 2299

告别卡顿!手把手教你用北鲲云超算平台图形化提交COMSOL仿真任务(附RDP连接技巧)

本文详细介绍了如何利用北鲲云超算平台图形化提交COMSOL仿真任务,解决本地计算资源不足导致的卡顿问题。通过云端高性能计算,用户可轻松配置多核CPU和大内存资源,实现高效仿真计算,并附有RDP连接优化技巧,提升远程操作体验。

weixin_42519781的博客 376

游戏开发实战:用UE4 Marschner模型打造次世代头发渲染(附Shader代码解析)

本文详细解析了如何在UE4中使用Marschner模型实现次世代头发渲染,包括Shader代码逐行解读与参数调优。通过对比传统Kajiya-Kay模型,展示了Marschner模型在物理精确性和视觉效果上的优势,并提供了性能优化与实战技巧,帮助技术美术师提升游戏角色渲染品质。

weixin_28223453的博客 237

nginx的反向代理和负载均衡

Nginx在1.9.0版本开始支持tcp模式的负载均衡,在1.9.13版本开始支持udp协议的负载,udp主要用于 DNS的域名解析,其配置方式和指令和http 代理类似,其基于ngx_stream_proxy_module模块实现tcp 负载,另外基于模块ngx_stream_upstream_module实现后端服务器分组转发、权重分配、状态监测、 调度算法等高级功能。#缓存中用于“键”的内容,默认值:proxy_cache_key $scheme$proxy_host$request_uri;

xujiangyan_的博客 1900

OpenClaw 快速安装与本地应用实战 —— 每一步都有截图加详细说明,本地AI助手,让打工人也有下属

《OpenClaw 2026开源智能体框架10分钟快速部署指南》摘要:本文提供OpenClaw最新版全平台部署方案,重点解决三大核心问题:1)环境配置优化,通过一键脚本实现3-8分钟快速安装(含国内镜像加速方案);2)初始化配置详解,包含大模型绑定(智普AI/本地模型)与5个高频技能安装;3)实战演示文件自动整理任务。同时总结6类常见故障解决方案,涵盖权限、端口占用等典型问题,确保用户从安装到首个自动化任务落地全程无障碍。特别强调Windows需管理员权限、禁用中文路径等关键注意事项,实现"安装即

weixin_43538316的博客 805

nginx实现反向代理及负载均衡

nginx配置反向代理 1.什么是反向代理 通常的代理服务器,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中由代理服务器向Internet上的web服务器发起请求,最终达到客户机上网的目的(也就是正向代理)。 而反向代理(Reverse Proxy)方式是指以代理服务器来接受internet

诗雨远方的博客 3万+

基于Java+Maven+Testng+RestAssured+Allure+Jenkins搭建一个接口自动化框架

2、有一个提取表达式列,通过编写每个接口的JSON提取表达式,后边在解析Excel时,对接口执行后的响应数据用该表达式提取出来,保存到环境变量,如果某些接口需要前置接口的响应数据,我们就可以从环境变量中获取该数据出来,从而解决了接口关联的问题。1、在之前介绍过全局配置类Contants中添加一个控制台日志开关控制权限,如果选择为false,则控制台不输出日志,将日志输出到allure报表,选择为true,则在控制台输出日志,不输出到allure报表。

专注于技术分享的博主 1183

【华为OD机试真题 新系统】1009、企业内部门的最大层级 | 机试真题+思路参考+代码解析(C++、Java、Py、C语言、JS)

【华为OD机试真题 新系统】1009、企业内部门的最大层级 | 机试真题+思路参考+代码解析(C++、Java、Py、C语言、JS) 华为od机试,华为od机试真题,华为od机试E卷,华为odE卷,华为od机试真题E卷,华为OD,华为OD机试,华为OD机试真题,华为od机考,华为od机试D卷,华为od机试真题D卷,华为od手撕代码,华为od,华为od机试C卷,华为od e卷,华为2026e卷,od机试,2026E卷,华为OD机试E卷,什么是华为od,华为od介绍,全面了解华为od,2026华为od,如何备战

KJ.JK 1402

Nginx的反向代理和负载均衡

Nginx的反向代理和负载均衡

m0_63217468的博客 3239

基于AI大模型实现自然语言转SQL、SQL解释、SQL优化和SQL转换

随着大数据和人工智能技术的发展,数据分析和数据挖掘在各行各业中的应用越来越广泛。SQL(Structured Query Language)作为关系数据库的查询语言,是数据分析的重要工具。然而,SQL语言的复杂性和专业性使得许多非技术背景的用户难以直接使用,阻碍了数据的广泛利用。为了降低SQL的使用门槛,许多研究者和企业开始探索如何通过自然语言处理(NLP)技术,将自然语言转化为SQL查询语句,从而让用户可以通过自然语言与数据库进行交互。

AI天才研究院 2237

【Nginx】Nginx的反向代理与负载均衡

Nginx是一个高性能的HTTP和反向代理服务器,反向代理服务器是一种位于服务器和客户端之间的代理服务器。客户端将请求发送给反向代理服务器,然后由代理服务器根据一定的规则将请求转发给后端服务器。后端服务器将响应返回给代理服务器,再由代理服务器将响应转发给客户端。Nginx拥有丰富的功能和模块,负载均衡就是其中之一。负载均衡是一种技术,用于在多台服务器之间分配工作负载,以确保高可用性和可靠性。负载均衡将用户的请求分配到多个后端服务器上进行处理,以达到优化资源利用率、提高响应速度和增加系统的可靠性的目的。

Marcos921的博客 1152

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Nginx反向代理和负载均衡

Nginx反向代理和负载均衡配置详解

qq_44749491的博客 9128

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Nginx的反向代理及负载均衡

代理服务器,客户机在发送请求时,不会直接发送给目的主机,而是先发送给代理服务器,代理服务接受客户机请求之后,再向主机发出,并接收目的主机返回的数据,存放在代理服务器的硬盘中,再发送给客户机。

weixin_74344274的博客 1047

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Nginx负载均衡VS反向代理

负载均衡是反向代理功能的扩展,当反向代理后面不是一台,而是多台后端服务器时,它就需要一个策略来决定将当前请求转发给哪一台。这个决策过程就是负载均衡。特性反向代理负载均衡核心目标的代理请求,隐藏后端,提供附加功能分发流量,提高可用性和扩展性后端数量可以只有一台后端服务器必须有多台后端服务器核心动作转发请求选择并转发请求主要价值安全、缓存、SSL卸载高可用、分流、弹性伸缩关系一种架构模式反向代理模式的一种功能增强功能范围相对专注于流量分发。

2201_75988916的博客 1243

nginx反向代理及负载均衡使用详解

nginx反向代理及负载均衡使用说明 文章目录nginx反向代理及负载均衡使用说明集群介绍负载均衡架构图为什么要使用集群集群种类负载均衡概念说明压力测试反响代理概念说明反向代理图解数据转发图解实践环境准备模块功能总结配置负载均衡服务proxy_next_upstream参数ngx_http_upstream_module模块常用功能ngx_http_upstream_module模块调度算法ngx...

学习进击之路 1万+

Nginx反向代理-负载均衡

同一个资源多次请求,可能会到达不同的服务器上,导致不必要的多次下载,缓存命中率不高,以及一些资源时间的浪费。在多个服务器的情况下,我们将请求发放到各个服务器上,将原先请求集中到单个服务器的情况改为将请求发送到多个服务器上,将负载分发到不同的服务器,也就是负载均衡。使用ip_hash指令无法保证后端服务器的负载均衡,可能导致有些后端服务器接收到的请求多,有些后端服务器接收的请求少,而且设置后端服务器权重等方法将不起作用。2、负载均衡,反向代理服务器选择合适的服务进行请求,实现流量的负载均衡。

computet_的博客 1346

Linux服务:Nginx反向代理与负载均衡

本文通过实验详细讲解了nginx反向代理和nginx反向代理负载均衡的实现。并讲解了nginx反向代理负载均衡的6种调度算法包括:轮询算法,加权轮询,最小连接数,ip hash,url hash,响应时间fair。

云计算之路 2244

Nginx - 配置/反向代理/负载均衡

Nginx 安装与启动 / Nginx 配置反向代理 / Nginx 配置负载均衡

chrismurphy的博客 2379
上一篇: nginx配置文件nginx.conf配置项说明
下一篇: nginx rewrite
梁吉林
博客等级 码龄15年 55粉丝 124原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值