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

news2024/11/29 8:44:00

作为代理服务器是当客户端访问代理服务器时,代理服务器代理客户端去访问真实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代理服务器端的配置:

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

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

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

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

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

相关文章

数据结构笔记39-48

碎碎念:想了很久,不知道数据结构这个科目最终该以什么笔记方式呈现出来,是纸质版还是电子版?后来想了又想,还是电子版吧?毕竟和计算机有关~(啊哈哈哈哈哈哈哈) 概率论已经更新完了&…

C语言经典指针运算笔试题图文解析

指针运算常常出现在面试题中&#xff0c;画图解决是最好的办法。 题目1&#xff1a; #include <stdio.h> int main() {int a[5] { 1, 2, 3, 4, 5 };int* ptr (int*)(&a 1);printf("%d,%d", *(a 1), *(ptr - 1));return 0; } //程序的结果是什么&…

JavaWeb5 SpringBoot+HTTP协议

Spring Spring Boot 非常快速构建应用程序&#xff0c;简化开发 &#xff08;1&#xff09;创建Springboot工程&#xff0c;勾选web开发依赖 创建好的目录&#xff0c;并将没用多余的删掉了 &#xff08;2&#xff09;定义请求处理类&#xff0c;并添加方法 创建请求处理类…

【iOS】UI学习(三)

目录 前言步进器和分栏控制器警告对话框和等待提示器UITextField登陆界面案例UIScrollView基础滚动视图的高级功能总结 前言 本篇博客是我在学习UI部分内容的学习笔记&#xff0c;希望对你有所帮助&#xff0c;如有错误&#xff0c;还请指出&#xff01; 步进器和分栏控制器 …

OpenEuler系统学习

OpenEuler系统简介 什么是OpenEuler&#xff0c;个人理解就是&#xff1a;通过社区合作&#xff0c;打造统一和开放的操作系统。 官方是这么介绍的&#xff1a; 欧拉是数字基础设施的开源操作系统&#xff0c;可广泛部署于服务器、云计算、边缘计算、嵌入式等各种形态设备&a…

朴素贝叶斯分类器 #数据挖掘 #Python

朴素贝叶斯分类器是一种基于概率统计的简单但强大的机器学习算法。它假设特征之间是相互独立的&#xff08;“朴素”&#xff09;&#xff0c;尽管在现实世界中这通常不成立&#xff0c;但在许多情况下这种简化假设仍能提供良好的性能。 基本原理&#xff1a;朴素贝叶斯分类器…

视觉系统辅助引导在激光导航AGV中应用

agv 在全球经济步入“寒冬”的大背景下&#xff0c;大量传统制造业企业开始谋划转变。通过引入AGV系统提升厂内物流效率、降低运营成本&#xff0c;已经成为制造业升级的趋势之一。 AGV是移动机器人的一个重要分支&#xff0c;具有并行作业、自动化、智能化和柔性化等优势&…

使用B树实现员工(人事)管理系统

1. 前言 使用B树来表示人事管理系统&#xff0c;其中每个节点代表一个人员&#xff0c;树的根节点为董事长&#xff0c;每个节点可以有多个子节点&#xff0c;表示下属。每一层代表一个等级分布。 addPerson: 添加人员功能通过查找指定上司节点&#xff0c;然后将新的人员作…

Windows 11中轻松显示休眠菜单的方法

在Windows 11中显示 眠菜单的方法 打开控制面板&#xff1a; 找到电源选项&#xff1a; 选择电源按钮的功能&#xff1a; 更改当前不可用的设置&#xff1a; 勾选休眠选项&#xff1a; 保存更改&#xff1a; 查看休眠选项&#xff1a; 如果以上步骤中未发现休眠选项&…

C++ 01 之 hello world

c01helloworld.cpp #include <iostream>using namespace std;int main() {cout << "hello world" << endl;return 0; } #include<iostream>; 预编译指令&#xff0c;引入头文件iostream.using namespace std; 使用标准命名空间cout <&l…

Golang 百题(实战快速掌握语法)_1

整形转字符串类型 实验介绍 本实验将展示三种方法来实现整形类型转字符串类型。 知识点 strconvfmt Itoa 函数 代码实例 Go 语言中 strconv 包的 itoa 函数输入一个 int 类型&#xff0c;返回转换后的字符串。下面是一个例子。 package mainimport ("fmt"&qu…

el-select filterable模糊搜索在iOS手机上无法弹出软键盘,解决方案

前提&#xff1a; el-select filterable模糊搜索在iOS手机上无法弹出软键盘&#xff0c;在手机上使用时&#xff0c;iOS手机&#xff0c;该组件无法唤起软键盘&#xff0c;导致没法进行模糊搜素。 于是。开始去找原因&#xff0c;发现主要是因为 组件中&#xff0c;input上有一…

分析GIS在疾病传播模型和公共卫生决策中的作用

在这个全球化日益加深的时代&#xff0c;疾病的跨国界传播成为全球公共卫生面临的重大挑战。地理信息科学&#xff08;GIS&#xff09;作为一门集成了空间数据采集、处理、分析及可视化的技术体系&#xff0c;在公共健康领域展现出其不可替代的价值。本文旨在深入探讨GIS如何助…

「面试必看」JS百题斩~ 原型 与 原型链

什么是原型&#xff0c;为什么需要原型 原型的强大之处在于&#xff0c;如果一组属性应该出现在每一个实例上&#xff0c;那我们就可以重用它们——尤其是对于方法。如下例子&#xff1a; function User(name,age){this.name name;this.age age;this.sayHi function(){con…

Linux命令-⽤户、权限管理

目录 <1>查看当前⽤户&#xff1a;whoami <2>查看登录⽤户&#xff1a;who <3>退出登录账户&#xff1a; exit <4>添加⽤户账号&#xff1a;useradd <5>设置⽤户密码&#xff1a;passwd <6>删除⽤户&#xff1a;userdel <7>切换⽤户…

【数据结构】双向链表(C语言)

哈喽铁子们&#xff0c;这里是博主鳄鱼皮坡。这篇文章将分享交流双向链表的相关知识&#xff0c;下面正式开始。 1. 双向链表的结构 注意&#xff1a;这里的“带头”跟前面我们说的“头节点”是两个概念&#xff0c;实际前面的在单链表阶段称呼不严 谨&#xff0c;但是为了老…

【教程】DGL单机多卡分布式GCN训练

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你&#xff0c;欢迎[点赞、收藏、关注]哦~ PyTorch中的DDP会将模型复制到每个GPU中。 梯度同步默认使用Ring-AllReduce进行&#xff0c;重叠了通信和计算。 示例代码&#xff1a; 视频&#xff1…

C++怎么根据变量名称返回变量的值?

在开始前刚好我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「C的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&#xff01; 有点好奇你这么做是为了什么。…

[Redis] Redis Desktop Manager 安装包和连接和创建流程

1. 安装流程就是next&#xff0c;就可以。 2. 分别填写好&#xff1a; Name(自定义&#xff0c;redis这个库展示的名字), Host, Port, Auth(Redis 的连接password) 3. 要勾选上Use SSL Protocol 选项&#xff0c; 4. 连接到redis上&#xff0c;展示不同的database&#xff0c;…

cad标注尺寸很简单,这三个方法很好掌握!

在CAD&#xff08;计算机辅助设计&#xff09;的广阔领域中&#xff0c;标注尺寸是至关重要的一环。无论是初入CAD领域的新手&#xff0c;还是经验丰富的设计师&#xff0c;掌握标注尺寸的技巧都是提升工作效率和准确性的关键。今天&#xff0c;我们就来分享三个简单而实用的方…