Nginx配置详细解释:(6)实现反向代理服务器,动静分离,负载均衡

目录

单台反向代理

proxy_pass后面加不加/的问题:

反向代理动静分离

反向代理负载均衡


作为代理服务器是当客户端访问代理服务器时,代理服务器代理客户端去访问真实web服务器。proxy_pass; 用来设置将客户端请求转发给的后端服务器的主机。

需要模块ngx_http_upstream_module支持。

单台反向代理

在第三台主机上下载安装httpd,在主页面/var/www/html/下写一个页面index.html

并启动systemctl start httpd别忘了关防火墙

在7-1上做代理服务器,写入location配置文件:

当有客户端访问我的IP时,我把请求转给指定的IP处理。保存退出,重新加载配置文件nginx -s reload

使用7-2访问7-1那么应该显示Node3的网页内容,也就是显示7-3 7-3

proxy_pass后面加不加/的问题:

location /test {
        proxy_pass http://192.168.114.30;  #不加/
    }

这里直接是将/test附加到192.168.114.30后面,也就是192.168.114.30/test/index.html,也就是主站点要有test这个文件夹。

在web网站建立主页面index.html内容为/var/www/html在主页面中建立test文件夹,里面创建一个内容为/var/www/html/test的文件index.html

使用Node2访问192.168.114.10/test

可以发现获取到的是/var/www/html/test也就是192.168.114.10/test/index.html类似于root

如果加/:

location /test {
        proxy_pass http://192.168.114.30/;
}

 发现实际返回的是proxy_pass后面的url的内容,也就是192.168.114.10/index.html类似于alias

反向代理动静分离

动静分离是实现客户端访问动态和静态资源时,代理服务器通过匹配url访问不同的服务器。

用浏览器作为客户端,7-1反向代理,7-2作为静态服务器,7-3作为动态服务器。

7-2和7-3使用httpd即可,

7-1上的配置:

重启配置文件:nginx -s reload

开启正则表达式~*,不能加/

当在浏览器访问192.168.114.10/a.jpg时,代理服务器会匹配以.jpg结尾的url,转给Node3主机处理,访问a.jpg图片:

当在浏览器访问192.168.114.10/api时,匹配访问192.168.114.20静态服务器。

反向代理负载均衡

当客户端访问网页时,代理服务器通过对客户端发出的请求分别交给真实服务端依次提供服务,解决单台服务器负载问题。

当7-4客户机访问代理服务器7-1时,7-1分别交给7-2或7-3依次执行,对多个服务端设置成一个服务器组,upstream,在location模块中写入代理转交给组名称。

7-1代理服务器端的配置:

在web服务器组中,还可以加权重,weight=2;

server 192.168.114.20 weight=2;默认都是1,加权重之后就是192.168.114.20大概是两次,192.168.114.10大概是1次,并不是绝对的。

我们在两台真实服务器端使用httpd模拟web服务器。分别在主页写入文件:

 在7-4上测试如下,发现每次访问代理服务器,7-2和7-3都会交替提供服务。实现负载均衡效果。

-------end---------

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/853282.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Web前端弱势因素:深入探讨与挑战解析

Web前端弱势因素:深入探讨与挑战解析 在快速发展的Web前端领域,尽管技术日新月异,但仍存在一些固有的弱势因素。这些因素不仅影响了开发效率和用户体验,也带来了诸多挑战。本文将深入探讨Web前端的弱势因素,并从四个方…

【C++11 之rbegin()、rend() 反向迭代器原理介绍及 重点-限制情况】与正向迭代器对比(互换放在下一p)

C11 引入了许多新特性,其中包括对 STL(Standard Template Library)的改进。在 STL 容器中,rbegin() 和 rend() 是两个新的成员函数,它们分别返回指向容器最后一个元素的反向迭代器(reverse iterator&#x…

你不知道的HTML5应用程序缓存:深度揭秘与进阶实践

在HTML5的众多革新之中,应用程序缓存(AppCache)常常被视为一项被忽视的宝藏。尽管近年来Service Workers逐渐取代了它的位置,AppCache在特定场景下仍展现了其独特的魅力与价值。本文旨在深入挖掘HTML5应用程序缓存的隐藏功能、常见…

Android入门第69天-AndroidStudio中的Gradle使用国内镜像最强教程

背景 AndroidStudio默认连接的是dl.google的gadle仓库。 每次重新build时: 下载速度慢;等待了半天总时build faild;build到一半connection timeout;即使使用了魔法也难以一次build好;这严重影响了我们的学习、开发效率。 当前网络上的使用国内镜像的教程不全 网上的教程…

C++ shared_ptr

shared_ptr共享它指向的对象,多个shared_ptr可以指向(关联)相同的对象,在内部采用计数机制来实现。 当新的shared_ptr与对象关联时,引用计数增加1。 当shared_ptr超出作用域时,引用计数减1。当引用计数变为…

YOLOv8改进 | 注意力机制 | 添加适用于遥感图像的LSKblock注意力——【二次创新+完整代码】

💡💡💡本专栏所有程序均经过测试,可成功执行💡💡💡 遥感目标检测的研究主要集中在改进方向边界框的表示上,而忽略了遥感场景中独特的先验知识。 这类先验知识对于准确检测微小目标至关重要,因为这些目标往往需要更大的上下文信息才能被正确识别。提出的 LSKNet …

根据身份证获取生日、性别、年龄

当type1时获取出生日期,type2时获取性别,type3时获取年龄 /** 当type1时获取出生日期,type2时获取性别,type3时获取年龄* */ function IdCard(IdCard, type) {if (type 1) {//获取出生日期let birthday IdCard.substring(6, 10) "-" IdCard.substring(10, 12) …

正式环境下的历史数据迁移方案,你知道几个?

一、历史数据库 MySQL 数据库可以很好地支撑海量的 OLTP(Online Transaction Processing)的系统,但是对于海量的互联网业务来说,数据量是非常巨大的。 假设一天 10 亿笔交易,每笔交易至少需要有一条记录,用于记录该笔交易,这就是通常所谓的流水数据。再假设一笔流水占…

C++100行超简单系统

非常好用&#xff0c;小白也可以自己修改 先来看图片&#xff1a; 用法附在代码里了&#xff01; #include <bits/stdc.h> #include <windows.h>using namespace std;struct users {string name;string num; bool f; } u[10000];int now_users 0; /*当前用户数*…

springboot接入springai-openAi代理和智谱ai调用示例

这里写自定义目录标题 背景配置具体代码总结 背景 一说到调用openAI的api或者做一些小项目&#xff0c;大部分例子都是python或者node实现的&#xff0c;后来发现spring出了对于openai的支持框架&#xff0c;所以尝试用一用。这里是SpringAI的地址&#xff0c;有兴趣的可以去官…

20240615在WIN11下的串口调试助手的下载安装以及使用

20240615在WIN11下的串口调试助手的下载安装以及使用 2024/6/15 18:06 百度&#xff1a;串口调试助手 blob:https://apps.microsoft.com/df934d29-fd7a-4873-bb6b-a4ab5a7934c9 串口调试助手 Installer.exe 收发的LOG&#xff1a; rootok3588:/# ./uart_test /dev/ttyS0 11520…

反射,枚举以及lambda表达式

【本节目标】 1. 掌握反射 2. 掌握枚举 3. 掌握lambda表达式使用 反射 1 定义 Java的反射&#xff08;reflection&#xff09;机制是在运行状态中&#xff0c;对于任意一个类&#xff0c;都能够知道这个类的所有属性和方法&#xff1b;对于任意一个对象&#xff0c;都能够调…

C++ bfS

岛屿的最大面积 . - 力扣&#xff08;LeetCode&#xff09; 1.刚开始mn又加了int 2.bfs里符合条件了&#xff0c;不push&#xff0c;&#xff0c;&#xff0c;在写什么几把 class Solution { public:int dx[4] {0, 0, 1, -1};int dy[4] {1, -1, 0, 0};bool vis[50][50];int…

从零制作一个ubuntu的docker镜像

上次分享了一下怎么制作centos的镜像&#xff0c;今天给大家分享一下ubuntu的制作方法。 准备ubuntu环境 如果你有Ubuntu环境的话最好&#xff0c;可以直接打包&#xff0c;我用的是CentOS系统&#xff0c;所以需要借助debootstrap工具。 yum -y install epel-release yum -y…

【博士每天一篇文献-算法】Progressive Neural Networks

阅读时间&#xff1a;2023-12-12 1 介绍 年份&#xff1a;2016 作者&#xff1a;Andrei A. Rusu,Neil Rabinowitz,Guillaume Desjardins,DeepMind 研究科学家,也都是EWC(Overcoming catastrophic forgetting in neural networks)算法的共同作者。 期刊&#xff1a; 未录用&am…

调教LLaMA类模型没那么难,LoRA将模型微调缩减到几小时

简介&#xff1a; 调教LLaMA类模型没那么难&#xff0c;LoRA将模型微调缩减到几小时 LoRA 微调方法&#xff0c;随着大模型的出现而走红。 最近几个月&#xff0c;ChatGPT 等一系列大语言模型&#xff08;LLM&#xff09;相继出现&#xff0c;随之而来的是算力紧缺日益严重。虽…

python如何对list求和

如何在Python中对多个list的对应元素求和&#xff0c;前提是每个list的长度一样。比如&#xff1a;a[1&#xff0c;2&#xff0c;3]&#xff0c;b[2&#xff0c;3&#xff0c;4]&#xff0c;c[3&#xff0c;4&#xff0c;5]&#xff0c;对a&#xff0c;b&#xff0c;c的对应元素…

C语言运算中的临时匿名变量

一&#xff1a;C语言和汇编的区别&#xff08;汇编对应机器操作&#xff0c;C语言对应逻辑操作&#xff09; &#xff08;1&#xff09;C语言叫高级语言&#xff0c;汇编语言叫低级语言 &#xff08;2&#xff09;低级语言的意思是汇编语言和机器操作相对应&#xff0c;汇编语言…

Linux echo输出命令以及重定向符号

echo命令 使用他可以输出指定内容&#xff0c;和编程语言中的 print( )差不多&#xff0c;都是将文字打印输出&#xff0c;该命令无参数。 输出文本 echo "123" 123输出命令执行结果 echo pwd /home/dpc重定向符 > 将左侧的命令结果&#xff0c;覆盖写入右侧…

分数计算 初级题目

今天继续更题。今天的题目是《第五单元 分数的加减法》初级题目。 定位&#xff1a;题目较为初级&#xff0c;适合预习 参考答案&#xff1a;CACCADACAABACBBCDBCB