nginx + apache + php stripped html problems

Konstantin A. Mikhailov (EUT) k.mikhailov at eut.ru
Fri Jun 8 12:10:24 MSD 2007


Доброго времени суток,

    Столкнулся с проблемой фунционирования связки nginx/0.5.20 + Apache/2.0.59 + PHP 4.4.7 на Solaris 10 X64.
Проблема состоит в том, что при отдаче в броузер nginx не отдает полностью страницу, режет ее близко к концу. 

При этом сам апач отдает все без проблем, если запросы направлять на него, минуя nginx. 

Проблему удалось частично решить путем установки в php.ini флага "zlib.output_compression = On", это позволило броузеру получать страницу нормально, но если внутри страницы есть код на javascript, который сам что то подгружает с сервера, то он тоже получает не полные данные, обрезанные в конце. Проверялось на нескольких версиях IE, Firefox. Похоже на то, что где то бьется header "Content-Length", возможно проблема в PHP.

Подскажите пожайлуста в какую сторону копать? Доверяет ли nginx header'у "Content-Length" полученному от апача, изменяет ли он его при отдаче клиенту?

Конфигурация nginx:
-->snip<--
user  webservd webservd;
worker_processes 1;
worker_rlimit_nofile  10240;
pid        logs/nginx.pid;
events {
    worker_connections  8192;
    use /dev/poll;
}
http {
    include  conf/mime.types;
    default_type  application/octet-stream;
    sendfile       on;
    tcp_nopush     on;
    tcp_nodelay    on;
    output_buffers   8 64k;
    postpone_output  1460;
    keepalive_timeout  75 20;
    client_header_timeout  30;
    client_body_timeout    60;
    send_timeout           120;
    ignore_invalid_headers  on;
    limit_zone  one  $binary_remote_addr  15m;
    server {
        listen       80;
        server_name calend.ru *.calend.ru;
    access_log /dev/null;
    error_log /dev/null;
        # Main location
        location / {
            default_type  text/html;
            ssi  off;
            proxy_pass         http://84.204.96.130:8088;
#          proxy_redirect     off;
            proxy_set_header   Host             $host;
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
            proxy_set_header   REQUEST_METHOD   $request_method;
           client_max_body_size       10m;
           client_body_buffer_size    128k;
            proxy_connect_timeout      90;
            proxy_send_timeout         90;
            proxy_read_timeout         90;
            proxy_buffer_size          4k;
            proxy_buffers              128 4k;
            proxy_busy_buffers_size    64k;
            proxy_temp_file_write_size 64k;
            proxy_buffering            on;
            proxy_max_temp_file_size  0;
}
         # Static files location
        location ~*
^.+.(htm|html|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|mp3|rtf|js)$ {
            ssi off;
            root   /data/sites/calend.ru/htdocs;
        }
        # Image files location
        location ~* ^.+.(jpg|jpeg|gif|png|ico|bmp)$ {
            root   /data/sites/calend.ru/htdocs;
            expires           1h;
        }
}
-->snip<--

--
Kind regards,
Konstantin A. Mikhailov
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20070608/07613bc6/attachment.html>


More information about the nginx-ru mailing list