ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Появляется "мусор" в response_body до и после "ожидаемого body"


  • To: nginx-ru@xxxxxxxxx
  • Subject: Появляется "мусор" в response_body до и после "ожидаемого body"
  • From: Bogun Dmitriy <vugluskr@xxxxxxxxxxxxxxx>
  • Date: Fri, 03 Apr 2009 00:47:57 +0300

Здравствуйте.

Столкнулся с багом. Скорее всего nginx'а.

Ситуация следующая с ipb форума делается ajax запрос на "быстрое редактирование" поста. В ответ возвращается страничка у которой в body в начало и в конец добавлено несколько символов, которых не было в момент отправки.(Чтобы это проверить я добавил сохранение сформированного ответа в файл непосредственно перед отдачей клиенту). В начало body добавляется "8366\n" в конец "\n0". Символы в начале изменяются, в хвосте всегда 0. Количество символов не меняется...

У глюка есть зависимость от прокси...
Если запрос идет
клиент=>nginx=>apache
глюк проявляется, а если
клиент=>squid=>nginx=>apache
не проявляется.

Размер body ответа, на момент отдачи его из php 31728 байт, но это лишь пример, я не знаю точную границу объема для этого запроса, после которого бага начинает проявляться.

Заподозрил что возможно в проблеме виноват сжатие вывода gzip'ом - убрал из апача mod_deflate и добавил в вхост nginx'а "gzip off;" - сжатие исчезло, но проблема осталась на месте.

Моя конфигурация.
# nginx -V
nginx version: nginx/0.6.32
configure arguments: --prefix=/usr --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access_log --error-log-path=/var/log/nginx/error_log --pid-path=/var/run/nginx.pid --http-client-body-temp-path=/var/tmp/nginx/client --http-proxy-temp-path=/var/tmp/nginx/proxy --http-fastcgi-temp-path=/var/tmp/nginx/fastcgi --with-md5-asm --with-md5=/usr/include --with-sha1-asm --with-sha1=/usr/include --without-http_fastcgi_module --with-http_ssl_module --with-http_stub_status_module --add-module=/var/tmp/portage/www-servers/nginx-0.6.32/work/nginx_uploadprogress_module

Конфиг vhost'а
upstream upstr_some_forum {
    server      127.0.1.50; 
    server      127.0.100.50 backup;
}
server {
    listen              a.b.c.d;

    server_name .some-forum.ru;

    access_log  /srv/some-forum.ru/log/nginx/access.log;
    access_log  /var/log/nginx/some-forum-access.log generic;
    error_log   /var/log/nginx/some-forum-error.log info;

    location ~ ^/(style_(?:images|emoticons|avatars|captcha)|uploads|jscripts|cache).*\.(?:js|css|gif|png|jpe?g|html)$ { 
        root /srv/some-forum.ru/www/htdocs/$1/;
        expires 7d;
    }
    location / {
        proxy_pass         http://upstr_some_forum;
        proxy_set_header   Host             $host;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
    }
}

Основной конфиг nginx'а в аттаче.
На upstream'е обычный апач с php'ой.
ОС - Gentoo linux-2.6.25-hardened-r13
user nginx nginx;
worker_processes 2;

error_log /var/log/nginx/error.log info;

events {
    worker_connections  1000;
    use epoll;
}

http {
    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;

    log_format generic
        '[$time_local] '
        'rip=$remote_addr lip=$server_addr U=$remote_user '
        'H="$host" Q="$request" C=$status S=$bytes_sent '
        'utime=$upstream_response_time '
        '"$http_referer" "$http_user_agent"';

    connection_pool_size 256;
    client_header_buffer_size 1k;
    large_client_header_buffers 4 2k;
    request_pool_size   4k;

    client_max_body_size 64m;
    client_header_timeout 120;
    client_body_timeout 90;
    send_timeout        90;

    proxy_read_timeout  5m;
    proxy_buffer_size   4k;
    proxy_buffers       16 4k;

    gzip on;
    gzip_min_length     1100;
    gzip_buffers        4 8k;
    gzip_types          text/plain;

    output_buffers      8 64k;
    postpone_output     1460;

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    ignore_invalid_headers on;

    keepalive_timeout   75 20;

    index               index.html;

    # _dummy_
    server {
        listen          213.186.117.227 default;

        server_name_in_redirect off;
        ssi             on;

        access_log      /var/log/nginx/_dummy_-access.log generic;
        error_log       /var/log/nginx/_dummy_-error.log;

        root            /srv/_dummy_/www/htdocs;

        location ~ /.svn/ {
            deny        all;
        }
    }

    include             /etc/nginx/srv.d/*.conf;
}


 




Copyright © Lexa Software, 1996-2009.