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.rhkb.cn/news/375943.html

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

相关文章

RMAN备份与还原

进入 rman 工具 rman target / 查看 rman 配置 rman> show all; 修改rman 配置 数据库全备 rman> run {allocate channel c1 type disk;allocate channel c2 type disk;backup incremental level 0 database format /home/oracle/backup/full_%d_%s_%t.bak;sql alte…

三个锦囊妙计助效率提升

前言 本文列出了3个常用的配置,可以帮助我们从繁琐重复的任务中解脱出来、实现自动化操作。日积月累,一定有助于提升效率。 1. gvim配置自动插入字符串 在.vimrc中加入以下一行代码,可以帮助你在gvim文本编辑器中快速插入一个带有日期或自定…

iPhone数据恢复篇:在 iPhone 上恢复找回短信的 5 种方法

方法 1:检查最近删除的文件夹 iOS 允许您在 30 天内恢复已删除的短信。您需要先从“设置”菜单启用“过滤器”。让我们来实际检查一下。 步骤 1:打开“设置” > “信息”。 步骤 2:选择“未知和垃圾邮件”,然后切换到“过滤…

SpringCloud第二篇(如何将大型项目拆分成微服务项目)

文章目录 一、认识微服务二、微服务拆分原则三、模块拆分1.根据不同功能创建模块2.修改配置文件3.搬运包 四、远程调用 这一章我们从单体架构的优缺点来分析,看看开发大型项目采用单体架构存在哪些问题,而微服务架构又是如何解决这些问题的 一、认识微服…

科技创新引领水利行业升级:深入分析智慧水利解决方案的核心价值,展望其在未来水资源管理中的重要地位与作用

目录 引言 一、智慧水利的概念与内涵 二、智慧水利解决方案的核心价值 1. 精准监测与预警 2. 优化资源配置 3. 智能运维管理 4. 公众参与与决策支持 三、智慧水利在未来水资源管理中的重要地位与作用 1. 推动水利行业转型升级 2. 保障国家水安全 3. 促进生态文明建设…

5G中的RedCap

5G中的RedCap:降低能力的重要性和实现方式 随着5G技术的推广和普及,设备和终端的多样化使得网络能力的管理变得更加复杂和关键。RedCap(Reduced Capability)作为一个重要的概念,旨在解决设备能力差异对网络服务和用户…

什么是STM32?嵌入式和STM32简单介绍

1、嵌入式和STM32 1.1.什么是嵌入式 除了桌面PC之外,所有的控制类设备都是嵌入式 嵌入式系统的定义:“用于控制、监视或者辅助操作机器和设备的装置”。 嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板,是一种专用的计算机系统。…

mybatis 延迟加载

MyBatis的延迟加载(Lazy Loading)是一种优化技术,用于在需要时才加载关联对象或集合,从而提高性能和效率。以下是对MyBatis延迟加载的详细介绍: 延迟加载的基本概念 延迟加载是指在第一次访问对象的属性时才加载该对象…

嵌入式面试准备

兆易创新 Linux中使用mkdir命令创建新的目录时,在其父目录不在时先创建父目录的选项: -m :–mode模式,建立目录的时候同时设置目录的权限。-p:–parents若所建立的上层目录目前尚未建立,则会一并建立上层…

SCI一区级 | Matlab实现NGO-CNN-LSTM-Mutilhead-Attention多变量时间序列预测

SCI一区级 | Matlab实现NGO-CNN-LSTM-Mutilhead-Attention多变量时间序列预测 目录 SCI一区级 | Matlab实现NGO-CNN-LSTM-Mutilhead-Attention多变量时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现NGO-CNN-LSTM-Mutilhead-Attention北方苍鹰算…

用Speedtest-Tracker跟踪上网速度(续)

什么是 Speedtest Tracker ? Speedtest Tracker 是一款自托管互联网性能跟踪应用程序,可针对 Ookla 的 Speedtest 服务运行速度测试检查。 之前老苏介绍的另一个 https://github.com/henrywhitaker3/Speedtest-Tracker 已被放弃。现在这个是积极维护的替代品&#…

192.168.1.1路由器管理系统使用教程

节选自:192.168.1.1路由器管理系统-厂商有哪些-如何使用-无法登录原因-苏州稳联 什么是 192.168.1.1 路由器管理系统? 192.168.1.1 是大多数家庭路由器的默认 IP 地址,用于访问路由器的管理控制台。通过这个管理系统,用户可以配…

彻底搞懂JVM垃圾回收

哈喽,大家好🎉,我是世杰。 欢迎大家关注我的公众号『程序员世杰』获取更多后端技术干货🎉🎉! 本文我为大家介绍「JVM垃圾回收那些事」 面试连环call 如何判断对象是否应被回收?finalize方法的实现机制是什么?如何判…

在Windows环境下安装pycharm

Python环境搭建 第一步下载安装python 等待安装完成 验证python是否安装成功 Python开发工具安装部署 JetBrains: Essential tools for software developers and teams PyCharm: the Python IDE for data science and web development 下载社区版本的PyCharm 双击打开下载好的…

python制作甘特图的基本知识(附Demo)

目录 前言1. matplotlib2. plotly 前言 甘特图是一种常见的项目管理工具,用于表示项目任务的时间进度 直观地看到项目的各个任务在时间上的分布和进度 常用的绘制甘特图的工具是 matplotlib 和 plotly 主要以Demo的形式展示 1. matplotlib 功能强大的绘图库&a…

nx上darknet的使用-目标检测-在python中的使用

1 内置的代码 在darknet中已经内置了两个py文件 darknet_video.py与darknet_images.py用法类似,都是改一改给的参数就行了,我们说一下几个关键的参数 input 要预测哪张图像weights 要使用哪个权重config_file 要使用哪个cfg文件data_file 要使用哪个da…

SQLite 命令行客户端 + HTA 实现简易UI

SQLite 命令行客户端 HTA 实现简易UI SQLite 客户端.hta目录结构V2V3参考资料 仅用于探索可行性&#xff0c;就只实现了 SELECT。 SQLite 客户端.hta <!DOCTYPE html> <html> <head><meta http-equiv"Content-Type" content"text/html;…

StarRocks分布式元数据源码解析

1. 支持元数据表 https://github.com/StarRocks/starrocks/pull/44276/files 核心类&#xff1a;LogicalIcebergMetadataTable&#xff0c;Iceberg元数据表&#xff0c;将元数据的各个字段做成表的列&#xff0c;后期可以通过sql操作从元数据获取字段&#xff0c;这个表的组成…

Java版Flink使用指南——从RabbitMQ中队列中接入消息流

大纲 创建RabbitMQ队列新建工程新增依赖编码设置数据源配置读取、处理数据完整代码 打包、上传和运行任务测试 工程代码 在《Java版Flink使用指南——安装Flink和使用IntelliJ制作任务包》一文中&#xff0c;我们完成了第一个小型Demo的编写。例子中的数据是代码预先指定的。而…

人工智能大模型如何助力电商产品经理打造高效的商品工业属性画像

摘要 商品工业属性画像是电商产品经理在进行商品管理、推荐、搜索、广告等业务时的重要依据。通过对商品的工业属性&#xff08;如品类、品牌、规格、功能、风格等&#xff09;的准确识别和标注&#xff0c;可以提高商品的展示效果、匹配度、转化率和用户满意度。然而&#xf…