ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Неверная обработка/переда ча POST запроса типа Content-Typ e: multipart/form-data


  • To: nginx-ru@xxxxxxxxx
  • Subject: Неверная обработка/переда ча POST запроса типа Content-Typ e: multipart/form-data
  • From: "trinex" <nginx-forum@xxxxxxxx>
  • Date: Tue, 25 Oct 2011 18:45:11 -0400
  • Dkim-signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mickey.jlkhosting.com; s=x; h=Date:Sender:From:Message-ID:Content-Transfer-Encoding:Content-Type:Subject:To; bh=7NaaIekJMZ1VqlRINZb7sB0lNqdQ3IXjObr92NywiS8=; b=cuO0YmbdETUM1UviKBYBF+SM7jllwKDAiA/QrTjVp2DRBU9Mc6spnC/5BxZ9Az3TRL3nJ3/TfQDgMhHD6eENWTAjHfYom6ONL7dcGqGsUOZvxTWyQcTUK8YxWg+1qy02;

Здравствуйте.
Nginx работает как проксирующий
веб-сервер, передавая динамические
запросы на apache + php, в общем, обычная и
распространенная схема. Конфиг nginx
выглядит так:


server {
...

location @fallback {
                        root /home/trinex.ru/public_html;
                        
                        proxy_cache off;
                        proxy_pass         http://127.0.0.1:8800;
                        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_connect_timeout      90;
                        proxy_send_timeout         90;
                        proxy_read_timeout         90;
                        proxy_send_lowat           12000;
                        proxy_buffer_size          4k;
                        proxy_buffers              4 32k;
                        proxy_busy_buffers_size    64k;
                        proxy_temp_file_write_size 64k;
                        proxy_temp_path           
/usr/local/nginx/proxy_temp 1 2;
                        charset utf-8;
        }


        location ~*
\.(jpg|jpeg|gif|png|ico|css|html|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js)$
{
                root /home/trinex.ru/public_html;
                error_page 404 = @fallback;
                charset utf-8;
                access_log   off;
                expires      30d;
        }

...
}

Обнаружил такую вот неприятную
проблему (nginx 0.*, 1.*):
есть  форма: http://trinex.ru/data.php
Она отправляется постом и имеет Content-Type:
multipart/form-data, запрос через nginx
проксируется на apache+php, в котором данные
POST просто выводятся на страницу.
Иногда, и что характерно и удивительно
в некоторых браузерах, эти данные
ломаются. Эффект наблюдается в Firefox,
InternetExplorer,  в Chrome такого нет (версии
браузеров последние на данный момент)
Вот так это выглядит:

[14]=>
    string(1) "0"
    [15]=>
    string(115) "0
-----------------------\0-----1524538208863362381055335516
Content-Disposition: form-data; name=\"id[]\"

166"
    [16]=>
    string(1) "0"


Если убрать nginx и выставить наружу apache,
то такой проблемы не наблюдается.
Почему такое происходит, и как можно
поправить  эту неприятную ошибку?
Возможно, проблема не в nginx?

Posted at Nginx Forum: 
http://forum.nginx.org/read.php?21,217337,217337#msg-217337

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.