Проблема с загрузкой файлов HTTP-заголовков в IE при прохождении через обратный прокси-сервер nginx - PullRequest
1 голос
/ 09 июля 2010

Настройка:

IIS7, обслуживающий классический код сценария VB ASP, который генерирует динамическую страницу / файл VSC с заголовками для загрузки.

Response.ContentType = "text/x-vCalendar"
Response.Expires = -1
Response.Buffer = True
Response.Clear
Response.AddHeader "Content-Disposition", "filename=" & strFileName & ".vcs;"
Response.Write strFileContent

Наши серверы IIS7за обратным прокси nginx.Все работает нормально, кроме загрузки этого файла.

Проблема:

При использовании IE и прохождении через обратный прокси-сервер (балансировщик нагрузки) файл не загружается как .vcs, но хочет загрузить .aspфайл / страница.

При использовании других браузеров через обратный прокси-сервер (балансировщик нагрузки) он работает нормально.

При использовании IE и обходе обратного прокси-сервера (балансировщик нагрузки), переходя прямо к IISсервер, он работает нормально.

Предположение:

Похоже, это проблема заголовка HTTP.Единственные различия, которые я мог найти в ответах, были дополнительными заголовками ответа:

Connection: keep-alive
Vary: Accept-Encoding

Ответы заголовка:

HTTP/1.1 200 OK
Cache-Control: private
Content-Length: 1431
Content-Type: text/x-vCalendar
Expires: Fri, 09 Jul 2010 13:26:38 GMT
Server: Microsoft-IIS/7.5
Content-Disposition: filename=2507541_16268.vcs;
X-Powered-By: ASP.NET
backend: iis1
Date: Fri, 09 Jul 2010 13:27:37 GMT

HTTP/1.1 200 OK                                                   
Connection: keep-alive
Vary: Accept-Encoding
Cache-Control: private
Content-Length: 1431
Content-Type: text/x-vCalendar
Expires: Fri, 09 Jul 2010 13:26:19 GMT
Server: nginx
Content-Disposition: filename=2507541_16268.vcs;
X-Powered-By: ASP.NET
backend: iis1
Date: Fri, 09 Jul 2010 13:27:15 GMT

Запрос

Есть ли какой-нибудь свет, который кто-то может пролить на этот вопрос?

Изменить настройки nginx или добавить ASP-код?

1 Ответ

0 голосов
/ 14 июля 2010

Так что я наконец понял это, подумал, что выложу это для всех, кому нужна помощь.

Я прокомментировал строку gzip_vary из моего файла nginx.conf - это, казалось, исправляло ситуацию, но я решил не устанавливать настройку на «off», потому что не хотел принудительно удалять Различный заголовок из других браузеров, где все работало ... комментирование работало.

# commenting this out seemed to work, but I could have set to: off
# gzip_vary on; 

Кроме того, я также сказал gzip отключить для IE6.

Принято: Я обнаружил, что указание expires также вызывает проблемы. Я предлагаю вам закомментировать любые директивы expires во время тестирования и выяснить, как отфильтровать при необходимости.

так что, для хорошей степени, вот обновленная часть сжатия моего конфига для nginx

 ## Compression
  gzip              on;
  gzip_buffers      16 8k;
  gzip_comp_level   6;
  gzip_http_version 1.0;
  gzip_min_length   0;
  gzip_types        text/plain text/css image/x-icon text/html text/xml application/x-javascript;
  #gzip_vary         on;
  gzip_disable     "msie6";
  gzip_proxied     any;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...