2010-07-09 34 views
0

設置:問題與IE文件下載HTTP標頭,當通過nginx的通過反向代理

IIS7服務ASP經典的VB腳本生成與頭下載一個動態頁面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 serrvers是一個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代碼添加?

回答

0

所以我終於明白了這一點,認爲我會把它發佈給任何需要幫助的人。

我註釋掉gzip_vary線,從我的nginx.conf文件 - 這似乎解決的事情,但我選擇不設置設置爲「關閉」,因爲我不想強行刪除從Vary標頭其他瀏覽器正在工作......評論工作。

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

此外,我還告訴gzip禁用IE6。

問題:我發現指定一個到期標題也引起了問題。我建議你在測試時註釋掉任何過期指令,並根據需要弄清楚如何過濾掉。

因此,良好的措施,下面是nginx的

我的conf的更新壓縮部分
## 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;