nginx正向代理和反向代理

news2024/9/21 19:01:05

nginx正向代理和反向代理

正向代理以及缓存配置

代理:客户端不再是直接访问服务器,通过代理服务器访问服务端。

正向代理:面向客户端,我们通过代理服务器的IP地址访问目标服务端。

服务端只知道代理服务器的地址,真正的客户端ip可以隐藏

科学上网。

设置代理地址

在这里插入图片描述

修改主机二的配置文件

在这里插入图片描述

二、

主机一

在这里插入图片描述

设置页面缓存

在这里插入图片描述

IP地址

在这里插入图片描述

传参的方式体现

在这里插入图片描述

server {
        listen       8888;
        server_name  localhost;
        resolver 8.8.8.8 valid=300 ipv6=off;
        #设置dns解析地址,解析器的缓存时间300秒,每300秒重新解析一次,关闭ipv6
        resolver_timeout 3s;
        #解析超时的时间3秒
        proxy_read_timeout 30s;
        #读取代理服务器的超时时间,30s,默认是60s.
        proxy_send_timeout 30s;
        #向服务端发送数据的超时时间是30s,默认是60s.
        proxy_connect_timeout 30s;
        #和服务器建立连接的超时时间,30s,默认也是60s
        charset utf-8;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
            proxy_pass  $scheme://$http_host$request_uri;
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header X-Forwarded-Host $host;
            proxy_set_header X-Forwarded-Port $server_port;
            #需要把客户端的真实ip,客户端的主机名,客户端的请求方式,服务端的端口,真实的ip地址添加在请求头当中
           # 请求转发到$url的地址,通过代理服务器地址可以直接访问百度 http://$url:端口
           # 设置页面的缓存:
            proxy_buffers 256 4k;
           #设置缓冲区为256个,大小是4k
            proxy_max_temp_file_size 0;
           # nginx服务器做为代理的时候暂时存放的响应数据的最大临时文件的大小为0,不使用临时文件
            proxy_cache_valid 200 302 1m;
           #当状态吗是200和302时,缓存的有效期是1分钟
            proxy_cache_valid 301 1h;
           #当状态吗是301,缓存的有效期是1小时
            proxy_cache_valid any 1m;
           #除了上述的三个状态吗,其他的缓存保存时间1分钟。

        }

nginx反向代理

反向代理

正向代理我们是知道代理服务器的地址,也知道我们访问的web服务器

反向代理,客户端还是访问的代理地址,但是具体访问web服务服务器还那一台,我们不知道

作用:请求分配到多个后台服务器上,分担服务器的负载,提供系统的可用性和稳定性

​ 缓存加速

​ 安全保护

在这里插入图片描述

四层代理 和七层代理之间的区别

正向代理,http模块之间的server和location

http模块配置的都是七层

七层就是应用层,使用http协议,可以对请求进行解析和处理,七层代理走的是用户态,应用协议和程序功能。

七层处理速度相对比较慢,但是可以提供更高级的的功能和更好的用户体验。

既可以是域名也可以是ip端口

四层是传输层,ip加端口,请求转发到后端,无法对请求进入深入的解析和处理,只能对请求流量的转发

四层转发的是内核态,内核处理,内核转发,所有速度比较快

应用场景:七层代理,一般都是对外提供访问,需要对请求进行处理,包括安全,过滤,流量控制

​ 四层代理,一般都是内部使用,不需要对流量,请求做特殊处理

配置方法以及负载均衡的算法

反向代理=负载均衡

配置方法:

七层只能写在http模块中 命令 upstream 只能只http的大模块中,不能在serevr

四层只能写在全局配置当中,不能写在http模块中,stream

test1 代理 【配置反向代理

test2 后台服务器

test3后台服务器

客户端就是谷歌浏览器

nginx配置文件 七层 主机一

在这里插入图片描述

在这里插入图片描述

主机二 html

主机三 html

负载均衡的算法:

1、轮巡 round rabin rr :轮询算法是最简单也是最基础的算法,也是默认算法,请求轮流分配到后端服务器

轮询算法适用于后端服务器处理能力相同的情况,访问量不大的情况,默认算法可以不加

2、加权轮询:在轮询的基础之上,给每个后台服务器设置不同的权重,流量的分配比不一定是按照权重比来的

权重高的被转发的概率大,权重低的相对小一点

后端的服务器性能有差异,性能高,权重相对更高,权重相对小一些

weight

在这里插入图片描述

3.最小连接数算法,least_conn;会把请求发送到当前连接数较少的后端服务器上

后端服务器处理任务耗时不同情况,可以避免请求集中在处理能力更强的服务器上

在这里插入图片描述

4、ip_hash* 怎么做会话保持?ip_hash根据算法,计算客户端IP地址的hash值,然后将请求转发到相应的服务器。

在第一次访问网站之时,就会计算出这个hash值,会把请求分配到一个服务器,但是下一个客户端如果使用相同的IP地址再次访问,

就不在分配到其他的服务器,除非后台服务器算法变更,或者后台的服务器数量发生变化,这会才会更改访问的服务器

适用场景,高并发,如果说客户端进来之后,不停地轮换服务器,反而会加重服务器的负担,固定在一台服务器上,降低了代理服务器的压力,同时也节约了资源

根据下一次访问的地址进行固定

在这里插入图片描述

nginx当中怎么保持会话保持

ip_hash可以实现会话保持

session 动态页面里面配置会话

5、URL_hsah,根据请求的url地址来计算哈希值,然后在转发,如果每次请求的url都一样,就会被分配知道同一个服务器。

转发的地发生变化,后台服务器清理缓存 或者后台服务器的数量发生变化

在这里插入图片描述

以上都是在七层当中使用的,四层没有ip_hash和url_hash的算法

基于域名实现

在这里插入图片描述

主机三也要修改

主机一

在这里插入图片描述

地址映射

三台都要做映射,然后统一重启

四层代理

配置方式只能在全局模块,算法比较少,只能是ip+端口

在这里插入图片描述

在这里插入图片描述

nginx优化

location的匹配和重定向

nginx的正向代理和反向代理

Tomcat和php一样,都是处理动态页面的

Tomcat也可以作为web应用服务,开源的

php -php

tomcat -jsp

nginx -html

tomcat 使用Java代码写的程序,运用的是Java的web程序

tomcat的特点和功能

1、servlet容器:执行Java servlet 服务端的Java程序,处理客户端的http请求,以及响应

2、jsp容器:Javasever page ,这是一种动态页面的技术,可以再html的页面嵌入Java代码。

3、自身也是一个http服务器

4、tomcat是一个轻量级的动态页面处理程序,高并发场景不使用。

优化,tomcat自身的优化,以及系统的内核优化,jvm优化。

servlet:

是Java语言中用来开发web应用程序的关键组件

处理http请求,生成动态内容以及相应客户端的请求,

处理http请求

生成动态内容

处理Java的业务逻辑

会话管理,保持用户的状态信息,购物车同步,用户登录

也可以转发nginx的动态请求到数据库

jsp:

web应用程序的界面,这个界面的语言使用Java实现的

.jsp为结尾的文件。

index.jsp

tomcat的组件:

connector:负责对外接受和响应请求,他是tomcat与客户端沟通的一个枢纽,监听端口接受外界请求

端口8080

接收到请求之后,传递给其他组件进行处理,处理完成之后回到connector ,在响应客户端。

container:负责处理业务逻辑,engine host context wrapper四个功能组成

engine:用来管理多个虚拟主机。

host一个host就是一个主机,也可以叫站点,通过配置host,可以添加多个站点

context:一个context代表一个web应用

wrapper:封装器,负责处理最底层的逻辑

service:对外提供外部服务,包含connector和container

tomcat可以有多个service。每个service之间是互相独立的

在这里插入图片描述

安装Java软件包

安装环境

在这里插入图片描述

刷新升级

解包重命名移动

在这里插入图片描述

启动

tomcat目录的作用

1、bin 存放启动关闭tomcat脚本文件,startup.sh shutdow.sh

2、.conf 存放tomcat的主配置文件 server.xml主配置文件

contex.xml:host的默认配置信息

tomcat-user.xml:登录时认证用户和密码的相关信息,manager文件必须要赋权修改之后才能打开

lib:tomcat运行时需要的jar包,一般不动

logs:日志文件,catalina.out主日志文件

temp:存放tomcat运行时产生的文件

webapps:部署web应用的目录,类似于nginx的html

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

先备份 在修改

在这里插入图片描述

删掉添加 修改

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

【RHCE】基于密钥的身份验证(Win-Linux)

目的:要提⾼系统安全性,通过在 OpenSSH 服务器上禁⽤密码⾝份验证来强制进⾏基于密钥的⾝份验证。 1、一台虚拟机无需密码连接另一台虚拟机 .ssh目录 > 保存了ssh相关的key和一些记录文件 (1)生成密钥对 使⽤这个流程在本地…

智慧港口可视化:提高运营效率与安全性

智慧港口通过图扑可视化技术,实时展示船舶停泊、货物装卸等关键数据,提高运营效率,保障港口的整体安全性与可靠性。

IT资产管理专题丨一文读懂什么是企业IT资产管理系统

在现代企业管理中,IT资产的管理变得越来越重要。随着信息技术的飞速发展,企业IT资产种类繁多,包括硬件设备、软件应用、许可证、合同等。 如何有效管理和利用这些资产成为企业面临的一大挑战。本文将通过人物对话的形式,详细解读企…

离线语音识别芯片在智能生活中的应用

离线语音识别芯片,这一技术正逐渐渗透到我们日常生活的每一个角落,为众多产品带来前所未有的智能体验。它能够应用到多种产品中,‌包括但不限于:‌ 1、智能音箱:‌语音识别芯片作为智能音箱的核心,‌使用户…

中霖教育:2024年中级经济师备考还来得及吗?

【中霖教育怎么样】【中霖教育口碑】 2024年的中级经济师考试还未开始报名,考试时间在11月16日-11月17日进行,考生目前距离考试还有半年的准备时间。不同的考生人群针对性的复习方法不同,以下内容可以作为大家的参考。 1、零基础考生&#…

【MySQL系列】VARCHAR的底层存储

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

MSPM0G3507(三十六)——超声波PID控制小车固定距离

效果图: 波形图软件是VOFA,B站有教程 ,虽然有缺点但是非常简单。 视频效果: PID控制距离 之前发过只有超声波测距的代码,MSPM0G3507(三十二)——超声波模块移植代码-CSDN博客 SYSCFG配置&#…

Nacos服务公网环境登陆报密码错误问题排查

作者:小丫 一、问题现象 nacos服务内网可以正常登录,如下: 走公网代理出来之后,无法正常登录,报错"用户名密码错误" 二、排查步骤 1、链路分析 首先确认公网代理的链路: 域名—>haprox…

扩散的魔法:如何打造未来生物打印?

生物打印技术正在快速发展,它允许我们将生物材料、细胞和生长因子等生物活性成分精确地打印成具有特定形状和功能的结构。而扩散现象在生物打印中扮演着至关重要的角色,它影响着打印结构的特性、机械性能、生物功能和形态。为了更好地利用扩散现象&#…

青年发展型城市成新青择地,期待与挑战并存

随着社会的发展和城市化进程的加快,青年人在选择未来定居地时面临着越来越多的选择。近日,中国青年报社社会调查中心联合问卷网对1500名青年进行的一项调查显示,74.8%的受访青年表示会优先考虑青年发展型城市。那么,青年在选择未来…

深耕一个领域存在的风险?

深耕一个领域存在的风险? 我们常常听到:要深耕一个领域/行业。 对于个人来说是选择一份职业深耕,还是在多个领域尝试? ​ 首先看看人才分类 人才的分类可以归纳为三种类型,I型,T型,X型,三种类型简称ITX “I” 型人才 “I” 型人才可以分为专才或者通才。横向放置…

文章解读与仿真程序复现思路——电力系统自动化EI\CSCD\北大核心《面向规模化分布式可再生能源并网的群网协同互动优化方法》

本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

ABAP调用BAPI时COMMIT WORK AND WAIT未按照预期同步提交问题分析

背景: 在做ABAP开发时,经常会有连续调用BAPI的需求,比如先创建销售订单,再依据销售订单创建交货单,再对交货单进行过账等类似的一连串调用,这种类似的场景往往需要前一步操作的数据完全写入数据库才能进行…

数据库mysql-对数据库和表的DDL命令

文章目录 一、什么是DDL操作二、数据库编码集和数据库校验集三、使用步骤对数据库的增删查改1.创建数据库2.进入数据库3.显示数据库4.修改数据库mysqldump 5.删除数据库 对表的增删查改1.添加/创建表2.插入表内容3.查看表查看所有表查看表结构查看表内容 4.修改表修改表的名字修…

经典关系抽取(一)CasRel(层叠式指针标注)在DuIE2.0数据集上的应用

经典关系抽取(一)CasRel(层叠式指针标注)在DuIE2.0数据集上的应用 关系抽取(Relation Extraction)就是从一段文本中抽取出(主体,关系,客体)这样的三元组,用英文表示是 (subject, relation, obj…

【Windows】硬链接和软链接(OneDrive同步指定目录?)

文章目录 一、场景带入二、Windows下的硬链接和软链接2.1 硬链接(Hard Link)2.2 软链接(符号链接,Symbolic Link)2.3 软链接和快捷方式2.4 应用场景 三、OneDrive中的应用3.1 错误姿势3.2 好像可行的尝试3.3 合理的解决…

SpringBoot使用Redisson操作Redis及使用场景实战

前言 在SpringBoot使用RedisTemplate、StringRedisTemplate操作Redis中,我们介绍了RedisTemplate以及如何SpringBoot如何通过RedisTemplate、StringRedisTemplate操作Redis。 RedisTemplate的好处就是基于SpringBoot自动装配的原理,使得整合redis时比较…

51单片机(STC8H8K64U/STC8051U34K64)_RA8889_8080参考代码(v1.3)

硬件:STC8H8K64U/STC8051U34K64 RA8889开发板 硬件跳线变更为并口8080模式,PS00x,R143,R142不接,R141无关 8080接口电路连接图: 实物连接图: RA8889开发板外接MCU连接器之引脚定义&…

防火巡查记录卡数字化平台

防火巡查记录卡数字化平台 利用凡尔码搭建防火巡查记录卡数字化平台是一个高效且实用的解决方案,能够显著提升防火巡查的效率和管理水平。替代纸质巡检造成的数据丢失等困扰。 一、如何注册凡尔码平台 百度搜索“凡尔码”找到平台地址即可注册开通。凡尔码平台通…

二叉树层序遍历?秒了!

废话不多说,直接上题,涉及到二叉树层序遍历的题目大部分都可以用这个方法: 示例:力扣102 二叉树的层序遍历 给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有…