subs_buffers
'subs_buffers' 指令指定在 NGINX 响应中进行字符串替换时用于存储临时数据的缓冲区数量和大小。
String substitutions module for nginx
·
httpserverlocation
语法subs_buffers number size;
默认值none
上下文http, server, location
参数2
说明
'subs_buffers' 指令是 NGINX 的字符串替换模块(String Substitutions module)的一部分,该模块允许在响应到达客户端之前替换输出中的指定字符串。该指令用于控制模块为处理替换操作而分配缓冲区的方式。它的两个参数分别指定缓冲区的数量和大小。合理调整这些值可以提高内存使用效率并在动态内容替换时提升性能。
第一个参数表示要分配的缓冲区数量,第二个参数指定每个缓冲区的大小。通过这些缓冲区,模块可以将进入的 HTTP 响应按可管理的块读取,从而高效地处理字符串替换,避免在处理大响应体时可能发生的内存耗尽。例如,设置 'subs_buffers 8 16k;' 会分配 8 个缓冲区,每个大小为 16k。这在高流量环境或处理包含大量嵌入变量数据的响应时尤其有用。
使用此指令时,必须考虑预期响应大小和并发连接数,因为不恰当的配置可能导致性能瓶颈或过高的内存消耗。可能需要通过试验来为特定用例找到最佳设置。
配置示例
location / {
subs_buffers 8 16k;
subs_filter a.example.com b.example.com;
}⚠
设置过多缓冲区或将缓冲区大小设得过大可能导致内存使用增加。
⚠
如果缓冲区不足,NGINX 可能无法正确处理较大的响应,从而导致替换错误或输出不完整。