Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
IE7 bug / force response to HTTP/1.0
- To: nginx-ru@xxxxxxxxx
- Subject: IE7 bug / force response to HTTP/1.0
- From: "Andrew V. Statsenko" <alter@xxxxxxxxx>
- Date: Mon, 21 Apr 2008 15:44:41 +0400
- Organization: Naunet SP
Приветствую!
Коллеги, очень похоже, что наступил за замечательные грабли с MS IE7, а
именно:
есть схема:
[Browser]-->[Nginx frontend]-->[Apache backend]
Иногда, для отчетов apache должен отдавать "Content-Type:
application/vnd.ms-excel" и далее динамически формируемые CSV данные для
клиента. Если apache отдает Transfer-Encoding: chunked , то IE7
предлагает диалог этот файл открыть или сохранить, но при любом выборе
"загрузить" этот отчет не может, ругаясь на что-то в духе "узел сети не
может быть найден".
Firefix & Opera успешно работают, ответы (проверено через tcpdump &
ngrep) все браузеры получают одинаковые.
Проблема на backend решается через форсирование ответа в HTTP/1.0
примерно такой конструкцией в apache:
SetEnvIf Request_URI exporter nokeepalive downgrade-1.0
force-response-1.0
и этом случае при обращении IE7 напрямую на backend все работает
(т.е. ?убираем ?Transfer-Encoding: chunked), но при обращении на
frontend IE7 опять ломается (на сей раз по всей видимости из-за
отсутствия Content-Length).
Вопросы:
1. Возможно ли сконфигурировать nginx, так, чтобы по некоторым localtion
он форсировал HTTP/1.0 ? То есть _теоретически_ примерно так:
location /
{
force_response_to_1_0;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_pass http://some.backend.host;
}
2. Если (1) невозможно/сложно , то есть ли возможность добавить
хидер ?Content-Length непосредственно на frontend'е - вычислить эту
длину самим nginx'ом и вставить хидер ?
3. Любые другие варианты решения ?
P.S.
Разломать схему frontend-backend не могу. Слишком будет хлопотно.
Чтобы вычислять ? ?Content-Length на backend, потребуется _сильно_
перепиливать генератор отчетов, что _очень_ не хочется делать.
P.S.S.
По поводу продукции компании MS испытываю массу разнообразнейших эмоций,
но если кто-нибудь знает, о том, что эту багу можно вылечить на стороне
браузера (патч, update ?), то был бы безмерно признателен за наводку.
---
С уважением,
Андрей Стаценко
|