当前位置: 首页 > 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;
http://www.lryc.cn/news/361798.html

相关文章:

  • 插入排序和希尔排序
  • Java web应用性能分析之【java进程问题分析定位】
  • c#控件笔记
  • STM32-15-DMA
  • Go语言 几种常见的IO模型用法 和 netpoll与原生GoNet对比
  • 大米cms安装支付逻辑漏洞
  • 使用 zxing 生成二维码以及条形码
  • 发布 jar 包到 maven 中央仓库
  • AI智能体研发之路-模型篇(四):一文入门pytorch开发
  • 英语口语中though的用法(even though、as though)
  • 菜刀冰蝎哥斯拉流量通讯特征绕过检测反制感知
  • 前端 JS 经典:判断数组的准确方法
  • 【仓库设置问题】
  • 深度学习知识与心得
  • Qt for Android
  • HTTP 的三次握手
  • 【Text2SQL 论文】T5-SR:使用 T5 生成中间表示来得到 SQL
  • 【HarmonyOS】应用屏蔽截屏和录屏
  • [BUG历险记] ERROR: [SIM 211-100] CSim failed with errors
  • Redis中大Key与热Key的解决方案
  • MySQL 视图(2)
  • Leecode---技巧---颜色分类、下一个排列、寻找重复数
  • ERC-7401:嵌套 NFT 标准的全新篇章
  • 代码随想录算法训练营Day6| 242.有效的字母异位词、349. 两个数组的交集、202. 快乐数、1. 两数之和
  • 三十四、openlayers官网示例Dynamic clusters解析——动态的聚合图层
  • SpringBoot登录认证--衔接SpringBoot案例通关版
  • vue3状态管理,pinia的使用
  • 入门到实践,手把手教你用AI绘画!
  • 大模型应用框架-LangChain
  • 探索Linux中的强大文本处理工具——sed命令