源码先锋

源码先锋

Nginx 备忘录 - 08. 缓冲区与缓存

admin 76 48
一、代理缓冲区

当我们增加了Nginx代理层时,请求流程为:客户端→Nginx→服务端,在这个过程中存在两个连接:客户端→Nginx(外网)、Nginx→服务端(内网),由于这两个连接所处的网路环境不同,他们的连接速度也是不一致的。

而Nginx代理缓冲区的用途就是来解决两个连接之间速度不匹配造成的问题,有了缓冲后,Nginx代理可暂存后端的响应,然后按需供给数据给客户端。

设置从服务端读取第一部分响应所使用的缓冲区大小。该参数始终都是生效的,设置从服务端读取响应所使用的缓冲区个数和大小Syntax:proxy_buffersnumbersize;Default:proxy_buffers84k|8k;Context:http,server,location允许给客户端发送响应的缓冲区大小(进入busy状态)。设置磁盘临时文件的位置Syntax:proxy_temp_pathpath[level1[level2[level3]]];Default:proxy_temp_pathproxy_temp;Context:http,server,location设置每次写入磁盘临时文件的大小。Syntax:proxy_temp_file_write_sizesize;Default:proxy_temp_file_write_size8k|16k;Context:http,server,location

当开启代理缓冲区时,nginx会尽快的从服务端读取响应并缓存在内存分配的缓冲区中。代理缓冲区的大小由proxy_buffer_size和proxy_buffers参数指定。

当响应大小超出内存缓冲区时,一部分响应体可以保存在磁盘临时文件中。磁盘临时文件的大小由proxy_max_temp_file_size和
proxy_temp_file_write_size参数指定。

所有的缓冲区参数是作用到每一个请求的。每一个请求会安按照参数的配置获得自己的缓冲区。

http{}}
二、服务端缓存

当我们要构建一个高性能的Web应用时,服务端缓存扮演着关键的角色。Nginx的proxy_cache模块提供了强大且灵活的缓存功能,对于优化网站性能,减轻服务端的负担,提高响应速度具有显著的效果。

开启或关闭代理缓存功能,并指定共享内存区域。定义缓存的键,用于区分不同的缓存项。Syntax:proxy_cache_keystring;Default:proxy_cache_key$scheme$proxy_host$request_uri;Context:http,server,location定义不同HTTP响应码的缓存有效期。Syntax:proxy_cache_valid[code]time;Default:—Context:http,server,location哪些情况下可以使用过时的缓存响应定义响应不会保存到缓存的条件Syntax:proxy_no_cachestring;Default:—Context:http,server,location响应头中添加缓存是否命中的状态,便于调试add_headerX-Proxy-Cache$upstream_cache_status;proxy_passhttp://liwy_server;}}}