proxy_buffers和client_body_buffer_size的区别

本文深入探讨了client_body_buffer_size与proxy_buffers在处理客户端请求和后端响应中的关键作用。前者确保POST数据上传顺利,后者避免因buffer不足导致的磁盘IO,对于优化服务器性能至关重要。

client_body_buffer_size   

处理客户端请求体buffer大小。用来处理POST提交数据,上传文件等。client_body_buffer_size 需要足够大以容纳如果需要上传POST数据。

proxy_buffers

处理后端响应,一般是代理服务器请求后端服务的response。如果这个buffer不够大,会引起磁盘IO,response的body内容会先写入临时目录中。

server { listen 80; server_name svn.freetech.com; # 完全解除请求体限制 client_max_body_size 0; client_body_buffer_size 5120m; # 强制全磁盘缓冲 client_body_temp_path /mass_storage/nginx_temp; # 必须指定大容量存储路径 location / { proxy_pass http://10.179.60.132:18080; # 解除代理缓存限制 proxy_max_temp_file_size 0; proxy_request_buffering off; # 禁用代理请求缓冲 # 超时扩展(单位:秒) proxy_connect_timeout 3600; # 连接超时1小时 proxy_read_timeout 86400; # 读取超时24小时 proxy_send_timeout 86400; # 缓冲区优化 proxy_buffers 8 64k; # 最小化内存占用 proxy_buffer_size 128k; # 保持基础头缓冲 # 头信息透传 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } server { listen 80; server_name svnedge.freetech.com; client_max_body_size 0; client_body_buffer_size 0; client_body_temp_path /mass_storage/nginx_temp; location / { proxy_pass http://10.179.60.132:3343; proxy_max_temp_file_size 0; proxy_request_buffering off; proxy_connect_timeout 3600; proxy_read_timeout 86400; proxy_send_timeout 86400; proxy_buffers 8 64k; proxy_buffer_size 128k; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } server { listen 18080; server_name svn.freetech.com; client_max_body_size 0; client_body_buffer_size 0; client_body_temp_path /mass_storage/nginx_temp; location / { proxy_pass http://10.179.60.132:18080; proxy_max_temp_file_size 0; proxy_request_buffering off; proxy_connect_timeout 3600; proxy_read_timeout 86400; proxy_send_timeout 86400; proxy_buffers 8 64k; proxy_buffer_size 128k; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } 分析一下改配置有问么问题
03-08
如何在一台服务器上部署多个项目,并且共用一个域名: 1:将nginx部署到linux下的/usr/local文件夹下 2:在nginx/conf文件夹下创建一个文件夹叫Assist,在Assist文件夹下创建配置文件Assist.conf Assist.conf的配置如下: server { listen 80; server_name 10.106.133.65; access_log logs/Assist2.access.log main; error_log logs/Assist2.error.log warn; root html; index index.html; #迭代一的项目 location /Assist/ { proxy_next_upstream error timeout http_503 http_502 http_504 invalid_header; proxy_set_header X-Real-IP $remote_addr; client_max_body_size 1000m; client_body_buffer_size 150m; proxy_ignore_client_abort on; proxy_connect_timeout 30s; proxy_send_timeout 30s; proxy_read_timeout 30s; proxy_buffer_size 128m; proxy_buffers 4 128m; proxy_busy_buffers_size 128m; proxy_temp_file_write_size 128m; proxy_headers_hash_max_size 51200; proxy_headers_hash_bucket_size 6400; proxy_intercept_errors on; proxy_set_header X-Forwarded-Proto $scheme; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Forwarded-Proto https; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://Assist_server; } #迭代二前端的包 location /dist/ { proxy_next_upstream error timeout http_503 http_502 http_504 invalid_header; proxy_set_header X-Real-IP $remote_addr; client_max_body_size 1000m; client_body_buffer_size 150m; proxy_ignore_client_abort on; proxy_connect_timeout 30s; proxy_send_timeout 30s; proxy_read_timeout 30s; proxy_buffer_size 128m; proxy_buffers 4 128m; proxy_busy_buffers_size 128m; proxy_temp_file_write_size 128m; proxy_headers_hash_max_size 51200; proxy_headers_hash_bucket_size 6400; proxy_intercept_errors on; proxy_set_header X-Forwarded-Proto $scheme; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Forwarded-Proto https; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://Assist2_server; } #迭代二的项目 location /Assist2/ { proxy_next_upstream error timeout http_503 http_502 http_504 invalid_header; proxy_set_header X-Real-IP $remote_addr; client_max_body_size 1000m; client_body_buffer_size 150m; proxy_ignore_client_abort on; proxy_connect_timeout 30s; proxy_send_timeout 30s; proxy_read_timeout 30s; proxy_buffer_size 128m; proxy_buffers 4 128m; proxy_busy_buffers_size 128m; proxy_temp_file_write_size 128m; proxy_headers_hash_max_size 51200; proxy_headers_hash_bucket_size 6400; proxy_intercept_errors on; proxy_set_header X-Forwarded-Proto $scheme; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Forwarded-Proto https; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://Assist2_server; } #迭代一的图片保存的位置 location /upload/ { proxy_next_upstream error timeout http_503 http_502 http_504 invalid_header; proxy_set_header X-Real-IP $remote_addr; client_max_body_size 1000m; client_body_buffer_size 150m; proxy_ignore_client_abort on; proxy_connect_timeout 30s; proxy_send_timeout 30s; proxy_read_timeout 30s; proxy_buffer_size 128m; proxy_buffers 4 128m; proxy_busy_buffers_size 128m; proxy_temp_file_write_size 128m; proxy_headers_hash_max_size 51200; proxy_headers_hash_bucket_size 6400; proxy_intercept_errors on; proxy_set_header X-Forwarded-Proto $scheme; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Forwarded-Proto https; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://Assist_server; } } 3:在conf文件夹下修改nginx.conf的配置如下: #user nobody; #worker_processes 2; error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; charset utf-8; log_format main '$remote_addr - - [$time_local] ' '"$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" "-" "$host" "$http_x_forwarded_for" "$upstream_cache_status"' access_log on; sendfile on; tcp_nopush on; tcp_nodelay on; #设置请求缓存 server_names_hash_bucket_size 128; #连接超时时间,单位是秒 keepalive_timeout 65; #开启gzip压缩功能 gzip on; #设置允许压缩的页面最小字节数 gzip_min_length 1k; #压缩缓冲区的大小,表示申请4个单位为8k的内存作为压缩结果流缓存 gzip_buffers 4 8k; #压缩版本 gzip_http_version 1.1; gzip_types text/* text/css application/javascript application/x-javascript; #设置请求缓存 client_header_buffer_size 16k; #设置请求缓存 large_client_header_buffers 4 64k; #隐藏响应header错误通知中的版本号 server_tokens off; #设置请求缓存 client_max_body_size 1000m; proxy_set_header X-Real-IP $proxy_add_x_forwarded_for; #允许重新定义或者添加发往后端服务器的请求头 proxy_set_header Host $host; # $server_port 代表nigix监听的端口 # $proxy_port 代表服务器真正访问的端口 #upstream表示负载服务器池 # upstream ivop2_server { # server 10.162.117.172:18080; # #server 10.162.117.172:29998; # } # # upstream test_server { # server 10.162.117.172:18085; # } # upstream ivop2dev_server { # server 10.162.171.14:18080; # } # upstream ivop2_c21_server { # server 10.186.55.146:18888; # #server 10.162.117.172:29998; # } # upstream test_sjj_server { # server 10.186.75.22:8055; # #server 10.162.117.172:29998; # } upstream Assist_server{ server 10.106.133.65:8080; } upstream Assist2_server { server 10.106.133.65:8090; } include Assist/Assist.conf; #include test/test.conf; #include ivop2/ivop2dev.conf; #include ivop2/ivop2.conf; #include ivop2_c21/ivop2_c21.conf; #include pachong/pachong.conf; # include jira/jira.conf; # server { # listen 127.0.0.1:88; # server_name 127.0.0.1:88; # location /_nginx_status { # stub_status on; # access_log off; # } # } } 根据以上提供,请帮我标注一下
07-30
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值