Назад | Перейти на главную страницу

как nginx обслуживает большие файлы

У нас возникла проблема с загрузкой PDF-файла размером около 300 КБ на нашу веб-страницу. PDF-файл обслуживается nginx. Всякий раз, когда я загружаю файл, появляется сообщение об ошибке Failed to open pdf document, но размер разбитого файла составляет всего 32 КБ. Я дважды проверил размер с обеих сторон.

После того как я проверил clicked_site(client_max_body_size), Я добавил в nginx.conf следующую конфигурацию:

http {

    ##
    # Basic Settings
    ##

    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;

    client_max_body_size 200M;
    client_body_buffer_size 50M;
    client_header_buffer_size 300K;
    large_client_header_buffers 2 1k;

    proxy_buffer_size     40k;
    proxy_buffers      4 32k;

    # server_tokens off;

    # server_names_hash_bucket_size 64;
    # server_name_in_redirect off;

    ........

    ........

}

сайты включены / по умолчанию:

 server {
   server_name www.domain.com;
   #root html;

   location /static/admin/ {
             alias /usr/local/lib/python2.7/dist-packages/django/contrib/admin/media/;
    }

  location / {
             # host and port to fastcgi server
             fastcgi_pass 127.0.0.1:8090;
             fastcgi_param PATH_INFO $fastcgi_script_name;
             fastcgi_param REQUEST_METHOD $request_method;
             fastcgi_param QUERY_STRING $query_string;
             fastcgi_param CONTENT_TYPE $content_type;
             fastcgi_param CONTENT_LENGTH $content_length;
             fastcgi_pass_header Authorization;
             fastcgi_intercept_errors off;
    }

    location /site_media/ {
             alias /intcen_media/;
             #root /flat;
             autoindex on;
    }
}

На сайте-медиа у меня есть каталог файлов, содержащий файлы pdf и swf.

Кто-нибудь видит ошибку в моей конфигурации, которая могла бы вызвать эту проблему?

Используйте curl или другой инструмент, чтобы проверить заголовки, чтобы убедиться, что вы указываете правильный тип MIME для файла PDF. Вы должны вставить mime.types в свою конфигурацию.

Если вы это делаете, я бы отбросил client_ * и связанные с ним буферы. У меня nginx работает без них и без проблем обслуживает PDF / SWF.