nginx正向代理和反向代理

nginx正向代理和反向代理

正向代理以及缓存配置

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

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

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

科学上网。

设置代理地址

在这里插入图片描述

修改主机二的配置文件

在这里插入图片描述

二、

主机一

在这里插入图片描述

设置页面缓存

在这里插入图片描述

IP地址

在这里插入图片描述

传参的方式体现

在这里插入图片描述

server {listen       8888;server_name  localhost;resolver 8.8.8.8 valid=300 ipv6=off;#设置dns解析地址,解析器的缓存时间300秒,每300秒重新解析一次,关闭ipv6resolver_timeout 3s;#解析超时的时间3秒proxy_read_timeout 30s;#读取代理服务器的超时时间,30s,默认是60s.proxy_send_timeout 30s;#向服务端发送数据的超时时间是30s,默认是60s.proxy_connect_timeout 30s;#和服务器建立连接的超时时间,30s,默认也是60scharset 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个,大小是4kproxy_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.mzph.cn/news/871029.shtml

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

相关文章

每日一练 - OSPF邻居关系建立故障排查

01 真题题目 OSPF邻居关系建立出现故障,通过display ospf error命令查看,显示如下信息,则邻居建立失败的原因可能是: A. Router ID冲突 B.区域ID不匹配 C.网络掩码不一致 D.MTU不一致 02 真题答案 B 03 答案解析 从图片中可以…

数据丢失?不存在的!

今年3月份,AT&T遭遇了严重的数据泄露事件,导致7300万客户账户信息被泄露。泄露的信息包括客户的姓名、电话号码、邮寄地址等敏感资料,甚至部分客户的加密密码也被泄露,使得约760万AT&T用户的账户面临被劫持的风险。 此次…

博客文章多平台发布工具

做过博客分享和自媒体的同学应该都知道,在多个平台上同步发布、更新自己的原创内容,是快速传播知识、提高用户触达率的有效方式。 然而,一篇文章要在N个平台上重复进行编辑、排版、图片/视频上传的苦恼,你一定经历过吧&#xff1…

从汇编层看64位程序运行——静态分析和动态分析入门

大纲 GDBIDA总结参考资料 之前一直谈各种相对宏观的工具怎么使用,比如Flink、RabbitMQ等。最近想聊聊比较微观的技术,用各种“显微镜”去看看运行在系统层的二进制码是什么样子。当然二进制码比较难以记忆,于是我会从二进制码的助记符——汇编…

408数据结构-图的应用2-最短路径 自学知识点整理

前置知识:最小生成树,图的遍历 最短路径 当图是带权图时,把从一个顶点 v 0 v_0 v0​到图中其余任意一个顶点 v i v_i vi​的一条路径所经过边上的权值之和,定位为该路径的带权路径长度,把带权路径长度最短的那条路径&…

centOS79中安装redis7.0

##red## 🔴 大家好,我是雄雄,欢迎关注微信公众号,雄雄的小课堂。 一、前言 新服务器,一些环境是少不了要安装的,比如常见的redis,mysql,nginx等,今天,上次&a…

【Golang】map的使用

map声明的方式 //声明var m map[string]string//在使用map之前,先make,make的作用就是给map分配空间m make(map[string]string)m["lover"] "Yzx"m["friend1"] "Zxw"m["friend2"] "Zzc"…

C语言-gcc编译四步

gcc -E hello.c -o hello.i 预处理 gcc -S hello.i -o hello.s 编译 gcc -c hello.s -o hello.o 汇编 gcc hello.o -o hello.exe 链接

springboot增加过滤器后中文乱码

记录一下小问题 public class RepeatableHttpServletWrapper extends HttpServletRequestWrapper {private byte[] body;public RepeatableHttpServletWrapper(HttpServletRequest request) throws IOException {super(request);request.setCharacterEncoding("UTF-8&q…

泛微E-Cology WorkflowServiceXml SQL注入漏洞复现

0x01 产品简介 泛微e-cology是一款由泛微网络科技开发的协同管理平台,支持人力资源、财务、行政等多功能管理和移动办公。 0x02 漏洞概述 2024年7月,泛微官方发布了新补丁,修复了一处SQL注入漏洞。经分析,攻击者无需认证即可利用该漏洞,建议受影响的客户尽快修复漏洞。…

fortran快速排序算法,示例对一维数组进行排序

fortran快速排序算法,示例对一维数组进行排序 0. 引言1. 快速排序方法(QuickSqrt)代码实现2. 结语 0. 引言 快速排序(QuickSort)是一种常用的排序算法,采用分治策略实现。它的基本思想是通过一趟排序将待排序的数据分割成独立的两…

Lingo学习(一)——基本界面、解方程、变量

一、Lingo基本界面 【步骤】 1.双击打开Lingo 2.弹出一个对话框,点击Cancel左边的Never Register即可,其余内容用不到。 3:界面自动弹出名为“Lingo Model – Lingo 1”的窗口,用于书写代码。 4:以解方程的题目:x12为例,写完代码后,点击“红色的靶心”运行程序。 5:首先Lin…

第1章 初识 Express

1.1 什么是 Express Express 是一个简洁而灵活的 Node.js Web 应用框架,提供了一系列强大的特性用于开发 Web 和移动应用。它基于 Node.js 构建,并且与 Node.js 的非阻塞 I/O 模型无缝集成,使其非常适合于构建高性能的 Web 应用。 主要特点…

【办公软件】PPT使用轮子动画做圈动作

在实际的PPT制作中,我们可能会用到画圈的动作来强调重点。如下所示为最基础的画圈动作。 那么如何来做一个这样的动作呢? 首先在PPT中选择插入,选择形状椭圆 然后按Shift画图,即可画出一个正圆 然后使用绘图工具,将开关…

鸿蒙开发:Universal Keystore Kit(密钥管理服务)【密钥证明介绍及算法规格】

密钥证明介绍及算法规格 HUKS为密钥提供合法性证明能力,主要应用于非对称密钥的公钥的证明。 基于PKI证书链技术,HUKS可以为存储在HUKS中的非对称密钥对的公钥签发证书,证明其公钥的合法性。业务可以通过系统提供的根CA证书,逐级…

Photoshop套索工具使用指南:解锁自由选区的艺术

在Adobe Photoshop的强大工具箱中,套索工具组是每位图像处理爱好者与专业人士的得力助手。这组工具,包括套索工具、多边形套索工具和磁性套索工具,为用户提供了高度灵活的选择区域方式,无论是处理复杂的图像边缘还是进行精细的抠图…

VMware安装Ubuntu以及利用vscode远程Ubuntu

一、VMware安装Ubuntu (1)VMware安装Ubuntu主要参考此文VMware虚拟机安装Ubuntu22.04图文教程(超详细!!!)。 (2)VMware密钥参考此文24年VMware 17密钥(附下载链接&#…

Android Settings应用 PreferenceScreen 条目隐藏实现和简单分析

Android Settings应用 PreferenceScreen 条目隐藏实现和简单分析 文章目录 Android Settings应用 PreferenceScreen 条目隐藏实现和简单分析一、前言二、隐藏实现1、xml 文件中隐藏PreferenceScreen 的某个条目2、普通Preference条目的隐藏的Java代码实现3、SwitchPreference条…

栈(Stack)与队列(Queue,Deque)

前言: 栈与队列在数据结构中用法都相对比较简单,是数据结构中经常用到的两种。 1.栈(Stack) (1)特点: 先入后出,后入先出。栈的底层就是一个数组(java原生库中&#x…

在PyQt中为自己开发的软件实现远程文件“一机一码”授权管理实例

在使用PyQt搞软件开发时,开发者往往想要给自己的软件添加一个授权机制,只有当客户提供了授权码并且开发者将授权码放在授权管理系统的时候,客户端才能正常启动。这几天小陶就在捣鼓这个事,发现确实是可行的。 如果没有进行授权&a…