Загрузка больших файлов + nginx

12
Pavka
На сайте с 20.05.2005
Offline
82
12969

Приветствую!

Нарисовалась проблема: файлы больше 15-16мб невозможно загрузить через форму на сайте.

В php выставлен лимит в 35мб, в nginx: client_max_body_size 35m; в апаче директива LimitRequestBody отсутствует.

Где еще нужно подкрутить, чтобы убрать это ограничение?

Без подписи
K
На сайте с 12.07.2006
Offline
295
Kpd
#1

Pavka, в php max_input_time и max_execution_time что показывают?

Проблема случайно не с отправкой писем в RoundCube? :)

N
На сайте с 06.05.2007
Offline
419
#2

Не забыли что в php upload_max_filesize зависит от post_max_size ?

Кнопка вызова админа ()
Pavka
На сайте с 20.05.2005
Offline
82
#3

Kpd, вроде бы тоже в порядке, разве что время выполнения прибавить...

max_execution_time = 30;
max_input_time = 60;
memory_limit = 64M

netwind, я знаю

post_max_size = 35M
K
На сайте с 12.07.2006
Offline
295
Kpd
#4
Pavka:
max_input_time = 60;

Попробуйте увеличить.

Pavka
На сайте с 20.05.2005
Offline
82
#5
Kpd:
Попробуйте увеличить.

а в nginx`е тоже надо увеличить keepalive_timeout? или он значение не имеет для аплода? Сейчас стоит 65

Boris A Dolgov
На сайте с 04.07.2007
Offline
215
#6

А что за ошибка, когда не получается загрузить?

Boris A Dolgov добавил 30.08.2009 в 23:15

input time бесполезно увеличивать при использовании nginx и файлах такого размера.

С уважением, Борис Долгов. Администрирование, дешевые лицензии ISPsystem, Parallels, cPanel, DirectAdmin, скины, SSL - ISPlicense.ru (http://www.isplicense.ru/?from=4926)
Andreyka
На сайте с 19.02.2005
Offline
822
#7

Надо смотреть по логам кто виноват - nginx или апач

Потом уже подскажу что дальше делать

Не стоит плодить сущности без необходимости
Pavka
На сайте с 20.05.2005
Offline
82
#8

Andreyka, судя по логам виноват все-таки nginx. В логах апача это ошибка не мелькает.

2009/08/30 22:14:25 [error] 20535#0: *7750003 client intended to send too large body: 22794567 bytes, client: 78.138.168.114, server: rusedu.net, request: "POST /admin.php HTTP/1.1", host: "rusedu.net", referrer: "http://rusedu.net/admin.php?op=newResource"

тут я пытался залить файл чуть больше 20мб

Boris A Dolgov, пустая страница и все :)

Boris A Dolgov
На сайте с 04.07.2007
Offline
215
#9

Видимо, Вы увеличили client_max_body_size не в том месте - например, в контексте не того server'a или location'a.

Pavka
На сайте с 20.05.2005
Offline
82
#10
Boris A Dolgov:
Видимо, Вы увеличили client_max_body_size не в том месте - например, в контексте не того server'a или location'a.

Я просто увеличил его значение, но не перемещал его по конфигу. Так выглядит начало конфига:

#######################################################################

#
# This is the main Nginx configuration file.
#
# More information about the configuration options is available on
# * the English wiki - http://wiki.codemongers.com/Main
# * the Russian documentation - http://sysoev.ru/nginx/
#
#######################################################################

#----------------------------------------------------------------------
# Main Module - directives that cover basic functionality
#
# http://wiki.codemongers.com/NginxMainModule
#
#----------------------------------------------------------------------

user nginx;
worker_processes 2;


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;
worker_rlimit_nofile 10240;




#----------------------------------------------------------------------
# Events Module
#
# http://wiki.codemongers.com/NginxEventsModule
#
#----------------------------------------------------------------------

events {
worker_connections 2048;
}


#----------------------------------------------------------------------
# HTTP Core Module
#
# http://wiki.codemongers.com/NginxHttpCoreModule
#
#----------------------------------------------------------------------

http {

limit_zone download $binary_remote_addr 10m;

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;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

sendfile on;
#tcp_nopush on;

#keepalive_timeout 0;
keepalive_timeout 65;

#gzip on;

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

#
# The default server
#
client_max_body_size 32m;
server {

Куда его лучше прописать в таком случае?

Pavka добавил 31.08.2009 в 00:52

Прописал для каждого сайта:

client_max_body_size 35m;
client_body_buffer_size 128k;

вроде загрузился 20-и мб файл

Завтра пользователи подтвердят (или опровергнут) :)

Спасибо всем за помощь!

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий