#作用：设置临时存储路径，用于缓存从后端服务器接收的响应数据（尤其是大文件或超出内存缓冲区的数据）。
#说明：当 Nginx 无法直接将响应数据写入内存时，会先将数据暂存到该目录下的临时文件，再传递给客户端。
proxy_temp_path /usr/local/nginx_new/proxy_temp_dir;

#levels=1:2：目录层级结构（一级子目录名 1 字符，二级子目录名 2 字符），用于分散文件避免单个目录文件过多。
#keys_zone=cache_one:20m：定义共享内存区域 cache_one，大小为 20MB，用于存储缓存键和元数据。
#inactive=1d：缓存内容若在 1 天内未被访问，则自动删除。
#max_size=5g：缓存总大小上限为 5GB，超出时按 LRU 算法清理。

proxy_cache_path /usr/local/nginx_new/proxy_cache_dir levels=1:2 keys_zone=cache_one:20m inactive=1d max_size=5g;

#作用：设置客户端请求体（如上传的文件或表单数据）的缓冲区大小。
#说明：若请求体超过 512KB，Nginx 会将其写入磁盘临时文件，避免占用过多内存

client_body_buffer_size 512k;

#与后端服务器建立连接的超时时间（60 秒）
proxy_connect_timeout 60;

#读取后端服务器响应数据的超时时间（60 秒）
proxy_read_timeout 60;

#向后端服务器发送请求数据的超时时间（60 秒）
proxy_send_timeout 60;

#单个缓冲区大小，用于存储从后端接收的响应头。
proxy_buffer_size 32k;

#设置 4 个缓冲区，每个 64KB，用于存储响应内容（共 4×64KB = 256KB 内存）
proxy_buffers 4 64k;

#当响应未完全读取时，可标记为“忙”的缓冲区总大小限制（128KB）
proxy_busy_buffers_size 128k;

#写入临时文件时，单次写入的数据块大小（128KB）
proxy_temp_file_write_size 128k;

#作用：定义在何种情况下将请求转发到下一个上游服务器。
#触发条件：
 #error：与后端服务器通信发生错误。
 #timeout：连接、读取或写入超时。
 #invalid_header：后端返回无效的响应头。
 #http_500/http_503/http_404：后端返回 500、503 或 404 状态码。

proxy_next_upstream error timeout invalid_header http_500 http_503 http_404;
proxy_cache cache_one;
