Welcome! Log In Create A New Profile

Advanced

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

Maxim Dounin
October 26, 2011 10:56AM
Hello!

On Tue, Oct 25, 2011 at 06:45:11PM -0400, trinex wrote:

> Здравствуйте.
> 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?

Убедитесь pls, что проблема воспроизводится в nginx 1.0.8/1.1.6.
Недавно было несколько исправлений, касающихся приёма тела запроса
(правда - при специфических условиях).

Если воспроизводится - то нужно:

1. Debug log, см. http://wiki.nginx.org/Debugging.

2. Само тело запроса, как его получил бекенд (не результат обработки,
а именно тело в виде текста). Не знаю, можно ли его получить в
php, но в любом случае подойдёт полный tcpdump соединения между
nginx'ом и бекендом.

Maxim Dounin

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

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

trinex October 25, 2011 06:45PM

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

Maxim Dounin October 26, 2011 10:56AM

Re[2]: / POST Content-Type: multipart/form-data

Andrey Repin October 26, 2011 06:22PM

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

trinex October 27, 2011 03:44AM

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

Maxim Dounin October 27, 2011 06:26AM

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

trinex October 27, 2011 06:29AM

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

trinex October 27, 2011 06:30AM

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

Maxim Dounin October 27, 2011 09:02AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 254
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready