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