当前位置: 首页 > news >正文

nginx反向代理了解

文章目录

  • Nginx
    • 反向代理
      • 反向代理系统调优
        • Proxy Buffer相关指令

Nginx

具有高性能的http和反向代理的web服务器,同时也是一个pop3/smtp/imap代理服务器,使用c语言编写

**Web服务器:**也叫网页服务器,web server,主要功能是为用户提供网上信息浏览服务

pop/smtp/imap:都是邮件相关协议,所以Nginx也可以作为电子邮件代理服务器

反向代理:

客户端将请求发送给代理,代理将请求发送给不同的服务端,把服务端隐藏起来,降低服务端压力

正向代理:

客户端将请求发送给代理,代理再向服务端请求,并接受服务端响应,将响应返回给客户端,比如翻墙

cgi:通用网关(接口),主要解决的问题是从客户端发送请求和数据,服务端获取到请求和数据后可以调用cgi程序处理及相应结果给客户端的一种标准规范

反向代理

正向代理代理的是客户端(如翻墙),反向代理代理的是服务端,用户请求代理服务器,代理服务器再将请求分发到服务端

ngx_http_proxy_module

proxy_pass

设置被代理服务器地址,可以是主机名称,ip地址+端口形式

Syntax:	proxy_pass URL;
Default:Context:	location, if in location, limit_except

如果url后面不带/,最终被代理服务器的地址会是原来的url拼接上location后面的url

proxy_set_header

用来给客户端请求添加头信息

Syntax:proxy_set_header field value;
Default:proxy_set_header Host $proxy_host;``proxy_set_header Connection close;
Context:http, server, location

$http_请求头名称:可以获取对应请求头内容

proxy_redirect

重置头信息中的Location和Refresh的值

Syntax:proxy_redirect default; proxy_redirect off; proxy_redirect redirect replacement;
Default:proxy_redirect default; 将location块的uri变量作为replacement,将proxy_pass变量作为redirect进行替换
Context:http, server, location

主要用来解决服务端ip可能暴露问题,可以在代理服务器端添加

proxy_redirect 服务端ip 代理服务器地址 来实现Location的

反向代理系统调优

Buffer和Cache

  • 相同点:都是用来提高IO吞吐效率,提升nginx代理性能
  • 不同点:缓冲主要用来解决不同设备之间数据传递速度不一致导致的性能低问题,缓冲中的数据一旦此次操作完成就可以删除
  • 缓存主要是备份,将被代理服务器的数据缓存一份到代理服务器,客户再次获取相同数据时,只需从代理服务器上获取,效率高
Proxy Buffer相关指令

proxy_buffering

用来开启或关闭代理服务器缓冲区

proxy_buffers

用来指定单个连接从代理服务器读取响应的缓存区的个数和大小

proxy_buffers 个数 大小

proxy_buffer_size

用来设置从被代理服务器获取的第一部分响应数据的大小,保持与proxy_buffers中的size一致即可,也可以更小

proxy_busy_buffers_size

限制同时处于busy状态的缓冲总大小

proxy_temp_file_write_size

设置磁盘上缓冲文件大小

proxy_buffering on;
proxy_buffers  4 32k;
proxy_busy_buffers_size  64k;
proxy_temp_file_write_size  64k;

相关文章:

  • LabVIEW高低温试验箱控制系统
  • 音视频开发14 FFmpeg 视频 相关格式分析 -- H264 NALU格式分析
  • 查找最小的K个元素
  • SpringBoot案例,通关版
  • 实时瞳孔分割算法-RITnet论文复现
  • 【Python】超时请求或计算的处理
  • Dify快速接入微信
  • C++之map
  • OVF(Open Virtualization Format)或OVA(Open Virtual Appliance)格式有什么区别
  • OpenGL 和 DirectX 矩阵 乘法 左乘和右乘,glm和DirectXMath。 OpenGL用列矩阵 在 glsl中反转矩阵
  • C语言(数据存储)
  • 计算机网络学习实践:模拟PPP协议验证虚拟局域网(VLAN)
  • 【人工智能Ⅱ】实验8:生成对抗网络
  • 做外贸,怎么选国外服务器?
  • “神经网络之父”和“深度学习鼻祖”Geoffrey Hinton
  • SegmentFault for Android 3.0 发布
  • 《微软的软件测试之道》成书始末、出版宣告、补充致谢名单及相关信息
  • 【RocksDB】TransactionDB源码分析
  • Asm.js的简单介绍
  • IDEA常用插件整理
  • Javascripit类型转换比较那点事儿,双等号(==)
  • Java到底能干嘛?
  • jdbc就是这么简单
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • Python爬虫--- 1.3 BS4库的解析器
  • Spring Cloud Feign的两种使用姿势
  • 第2章 网络文档
  • 湖南卫视:中国白领因网络偷菜成当代最寂寞的人?
  • 理清楚Vue的结构
  • 项目管理碎碎念系列之一:干系人管理
  • 移动端解决方案学习记录
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • ​十个常见的 Python 脚本 (详细介绍 + 代码举例)
  • ​什么是bug?bug的源头在哪里?
  • # .NET Framework中使用命名管道进行进程间通信
  • #NOIP 2014#Day.2 T3 解方程
  • #pragma 指令
  • (3)llvm ir转换过程
  • (delphi11最新学习资料) Object Pascal 学习笔记---第13章第6节 (嵌套的Finally代码块)
  • (第27天)Oracle 数据泵转换分区表
  • (定时器/计数器)中断系统(详解与使用)
  • (附源码)apringboot计算机专业大学生就业指南 毕业设计061355
  • (十一)JAVA springboot ssm b2b2c多用户商城系统源码:服务网关Zuul高级篇
  • (转) 深度模型优化性能 调参
  • (转)程序员技术练级攻略
  • (转)用.Net的File控件上传文件的解决方案
  • (转载)深入super,看Python如何解决钻石继承难题
  • (轉貼) VS2005 快捷键 (初級) (.NET) (Visual Studio)
  • ******IT公司面试题汇总+优秀技术博客汇总
  • **PHP二维数组遍历时同时赋值
  • .bat批处理(七):PC端从手机内复制文件到本地
  • .dwp和.webpart的区别
  • .NET 常见的偏门问题
  • .NET 通过系统影子账户实现权限维持