URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 7404
[ Назад ]

Исходное сообщение
"NGINX - колечит картинки"

Отправлено studovnet , 16-Ноя-11 12:52 
Првиет. Давненько утановил nginx, всё это время он недоотдовал картинки полностью, даже не очень большие по 100КБ (каждая вторая калечится). С каналами связи никаких проблем, при этом картинка загружается моментально, но не до конца.

как настроть то нужно? Картинка отдаётся апачем через php, некоторые динамические действия делаются с ней.

При отключении nginx и работы с апача, всё отдаётся нормально.

nginx 0.7

конфиг (site.ru и ip_adress_here поставлено перед публикацией):

user  nobody;
worker_processes  4;
worker_rlimit_nofile 8192;

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

pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
    use epoll;
}


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

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    tcp_nopush      on;
    tcp_nodelay     on;
    server_tokens   off;
    gzip            on;
    gzip_static     on;
    gzip_comp_level 6;
    gzip_min_length 1024;
    gzip_proxied expired no-cache no-store private auth;
    gzip_types text/json text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;
    gzip_disable "msie6";
    keepalive_timeout  15;
    #limit_zone   myzone  $binary_remote_addr  10m;

    #server_names_hash_bucket_size 64;
    #server_names_hash_max_size 4096;

    # Load config files from the /etc/nginx/conf.d directory
    include /etc/nginx/conf.d/*.conf;

    server {
        listen 80;
        server_name site.ru www.site.ru;
        #access_log /var/www/vhosts/site.ru/nginx_access.log;
        #error_log /var/www/vhosts/site.ru/nginx_error.log warn;

        charset windows-1251;

        client_max_body_size 3m;

        set $www_root "/var/www/vhosts/site.ru/httpdocs/";
        #set $image_root "/var/www/vhosts/site.ru/httpdocs/storage/img/";

        location ~* ^.+\.(css|js)$ {
            root $www_root;
            #break;
        }

        #location ~* ^(.*)/hot\-img/(.*)\.(jpg|jpeg|png|gif|bmp|tiff|ico|swf|psd)$ {
        #    r
        #}

        #all dynamic pages
        location / {
            proxy_pass http://ip_adress_here:88/;
            proxy_redirect off;
            #proxy_redirect http://ip_adress_here:88;
            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_intercept_errors off;
            proxy_connect_timeout 30;
            proxy_send_timeout 30;
            proxy_read_timeout 30;
        }

        #deny htaccess
        location ~ /\.ht {
            deny all;
        }
    }

  }


Содержание

Сообщения в этом обсуждении
"NGINX - колечит картинки"
Отправлено Аноним , 16-Ноя-11 19:55 
> Картинка отдаётся апачем через php, некоторые динамические действия
> делаются с ней.

скорее всего ваш апач (или собственно php скрипт) отдают chunked ответ (признак - заголовок в ответе "Transfer-Encoding: chunked") nginx такие ответы не понимает - отсюда битые картинки.