upload module 2.0.11
Valery Kholodkov
valery+nginxru at grid.net.ru
Tue Nov 24 23:56:36 MSK 2009
CyberDem0n пишет:
> В модуле есть одна неприятная бага, которая тянется со времен обновления API в nginx-0.8.11.
> Если keepalive_timeout > 0, то после аплоада перестают обрабатываться любые запросы.
>
> Теперь расскажу как повторить подобное поведение.
>
> /* nginx.conf */
> user nginx nginx;
> worker_processes 1;
>
> error_log /var/log/nginx/error_log info;
>
> events {
> worker_connections 8192;
> use epoll;
> }
>
> http {
> include /etc/nginx/mime.types;
> default_type application/octet-stream;
>
> client_header_timeout 10m;
> client_body_timeout 10m;
> send_timeout 10m;
>
> connection_pool_size 256;
> client_header_buffer_size 1k;
> large_client_header_buffers 4 2k;
> request_pool_size 4k;
>
> output_buffers 1 32k;
> postpone_output 1460;
>
> sendfile on;
> tcp_nopush on;
> tcp_nodelay on;
>
> keepalive_timeout 75 20;
>
> server {
> listen 127.0.0.1;
> server_name localhost;
>
> root /var/www;
>
> location /example.php {
> if ($request_method = "GET") {
> proxy_pass http://localhost:8080;
> break;
> }
> upload_pass @test;
> upload_store /tmp;
> upload_store_access user:r;
> upload_set_form_field $upload_field_name.name "$upload_file_name";
> upload_set_form_field $upload_field_name.content_type "$upload_content_type";
> upload_set_form_field $upload_field_name.path "$upload_tmp_path";
> upload_aggregate_form_field "$upload_field_name.md5" "$upload_file_md5";
> upload_aggregate_form_field "$upload_field_name.size" "$upload_file_size";
> upload_pass_form_field "^submit$|^description$";
> upload_cleanup 400 404 499 500-505;
> }
>
> location @test {
> proxy_pass http://localhost:8080;
> }
> }
> }
>
> _________________________________________________________________________
> --- nginx_upload_module-2.0.11/example.php 2009-11-18 18:19:10.000000000 +0300
> +++ example.php 2009-11-24 15:19:51.312792765 +0300
> @@ -28,10 +28,11 @@
> }
>
> echo "";
> + echo "setTimeout('location.href=\"/example.php\"', 1000);";
>
> }else{?>
> Select files to upload
> -
> +
>
>
>
> ______________________________________________________________________________
>
> + Апач со стандартными настройками на порту 8080
>
>
>
> Смысл в следующем, сразу после аплоада example.php показывает табличку, и потом через секунду выполняет при помощи javascript "редирект" на себя-же (чтобы опять показать форму).
>
> Так вот, в этом "редиректе" страница example.php не загружается. При этом браузере запрос как-бы "залипает". То есть браузер показывает что пытается загрузить страницу, но результата дождаться за какое-либо разумное время невозможно.
>
> Если-же указать keepalive_timeout 0; то всё ОК.
Можно попробовать патч?
--
Best regards,
Valery Kholodkov
-------------- next part --------------
A non-text attachment was scrubbed...
Name: upload_keepalive.patch
Type: text/x-diff
Size: 1026 bytes
Desc: not available
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20091124/060db3f2/attachment-0001.patch>
More information about the nginx-ru
mailing list