<div>Hi LRUG,</div><div><br></div><div>We are serving up large file downloads from a rails 3.0 application using nginx via an X-Accel-Redirect header. This worked splendidly up until recently when we switched over to serving the application and downloads over HTTPS.</div><div><br></div><div>Apparently Internet Explorer doesn't like downloading files over SSL when the Cache-Control header is set to "no-cache" as it can't handle it internally.</div><div><br></div><div>Unfortunately, we can't figure out how to set the Cache-Control header as everything we've tried doesn't change it from "no-cache". </div><div><br></div><div>We've tried the proxy_hide_header Cache-Control; declaration in nginx. We've tried using add_header Cache-Control "private"; in nginx too, without any luck. In the rails application we are serving the file as follows:</div><div><br></div><div>head(:x_accel_redirect => "/file_redirect/#{INTERNAL_MEDIA_HOST}/#{filepath}", :content_type => mime, :content_length => size, :content_disposition => "attachment; filename=\"filename.mp4"")</div><div><br></div><div>So before that we've tried adding: </div><div><br></div><div><div>response.headers.delete("Pragma")</div><div>response.headers.delete('Cache-Control')</div><div><br></div><div>and also </div><div><br></div><div><div>response.headers["Cache-Control"] = "public"</div><div>response.headers["Pragma"] = ""</div><div>response.headers["Expires"] = "Fri, 01 Jan 1990 00:00:00 GMT"</div></div><div><br></div><div>In the case of the last one, the Expires header does get set, but Cache-Control stays as "no-cache".</div><div><br></div><div>Does anyone have any suggestions as to what might be causing this and how we could set our own Cache-Control header?</div><div><br></div><div><br></div><div><br></div><div>Thanks,</div><div>Rory</div><div><br></div></div><div></div><div></div>