使用nginx 做反向代理时关于数据丢失的问题

来源:互联网 发布:用波士顿矩阵分析案例 编辑:程序博客网 时间:2024/04/27 19:36

最近在使用nginx 做反向代理时发现,最终返回的页面存在数据丢失的问题,最终发现问题所在

部分配置如下:

server {
        listen 10090;
        server_name localhost;
        client_max_body_size 100M;
proxy_buffer_size        16k;
proxy_buffers            4 64k;
proxy_busy_buffers_size 128k;
proxy_temp_file_write_size 128k;
#server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_body_buffer_size  512k;


        location / {
            access_log off;
            proxy_pass_header Server;
            proxy_set_header Host $http_host;
            proxy_redirect off;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Scheme $scheme;
            proxy_pass http://frontends/;
        }


        location /nginx_status {            
            stub_status on;
            access_log off;
        }
    }


由于设置缓冲区较小,当返回负载均衡服务器的数据时,由于返回数据较大(如 600k),会由于缓冲区设置较小造成数据丢失,只要将相对的缓冲区大小设置满足自己实际需求即可防止数据丢失。