使用此文档:
http://wiki.nginx.org/XSendfile
我添加了一个内部位置块
location /protected {
internal;
alias /protected/;
}
然后使用“X-Accel-Redirect”标头发送文件(这是python / django代码):
response = HttpResponse()
response['X-Accel-Redirect'] = filename # /protected/foo.zip, no trailing slash
response['Content-Disposition'] = "attachment; filename=downloads.zip"
return response
但结果是Nginx向/protected/foo.zip/发送302(注意尾随斜杠),结果为404.
我缺少什么让Nginx发送文件而不是302?
答案 0 :(得分:0)
我的问题在于SSL。
我忘记了网站有两种配置,一种配置SSL,另一种配置不配置。
似乎如果Nginx获得此标题并且没有匹配的内部块,它会将您重定向到您指定的位置。