sendfile 头和使用的 web 服务器如下: X-Sendfile Apache, Lighttpd v1.5, Cherokee X-LIGHTTPD-send-file Lighttpd v1.4 X-Accel-Redirect 我们只需要保持保存文件的名字跟location后面的单词一致,还和header中的第一个文件路径一致即可,例如: location /protected/ header(‘X-Accel-Redirect octet-stream;charset=utf-8”); header(‘Content-Disposition: attachment; filename=test.rar’); header(‘X-Accel-Redirect
Content-Disposition: attachment; filename="' . basename($filePath) . '"'); // 让Xsendfile发送文件 header('X-Accel-Redirect > 在php代码里面使用 X-Accel-Redirect 让nginx使用XSendfile机制提升下载性能,这样用户下载到了 /home/nemo/fileDir/protectedFile/test.pdf
Content-Disposition: attachment; filename="' . basename($filePath) . '"'); // 让Xsendfile发送文件 header('X-Accel-Redirect > 在php代码里面使用 X-Accel-Redirect 让nginx使用XSendfile机制提升下载性能,这样用户下载到了 /home/nemo/fileDir/protectedFile/test.pdf
通过设置为off的merge_slashes检查路径遍历 漏洞 -测试使用逐跳标头时请求长度的差异(例如:X-Forwarded-Host) -使用Kyubi通过错误配置的别名测试路径遍历漏洞 -使用X-Accel-Redirect
$fastcgi_script_name; fastcgi_param HTTPS off; fastcgi_param HTTP_X-Sendfile-Type X-Accel-Redirect
.; 以下字段可以忽略:“X-Accel-Redirect”、“X-Accel-Expires”、“X-Accel-Limit-Rate”(1.1.6)、“X-Accel-Buffering”(1.1.6 如果未禁用,则处理这些标头字段具有以下效果: “X-Accel-Expires”、“Expires”、“Cache-Control”、“Set-Cookie”、“Vary”设置响应缓存的参数 “X-Accel-Redirect
.; 以下字段可以忽略:“X-Accel-Redirect”、“X-Accel-Expires”、“X-Accel-Limit-Rate”(1.1.6)、“X-Accel-Buffering”(1.1.6 如果未禁用,则处理这些标头字段具有以下效果: “X-Accel-Expires”、“Expires”、“Cache-Control”、“Set-Cookie”、“Vary”设置响应缓存的参数 “X-Accel-Redirect
proxy_ignore_headers通常用来禁用上游服务器的某些响应字段,如: X-Accel-Expires Expires Cache-Control Set-Cookie Vary X-Accel-Redirect
fastcgi_script_name; fastcgi_param HTTPS off; fastcgi_param HTTP_X-Sendfile-Type X-Accel-Redirect
proxy_ignore_headers field; Default: — Context: http, server, location 不缓存包含在field的响应header,可以设置的值有:“X-Accel-Redirect
www.domain.com; location / { proxy_pass http://myproject; } } } 更多 官方完整的指令列表 官方完整的变量列表 官方完整的内置模块列表 使用Nginx的X-Accel-Redirect
建议:不做修改 fastcgi_ignore_headers 这个指令禁止处理一些FastCGI服务器应答的头部字段,比如可以指定像”X-Accel-Redirect”, “X-Accel-Expires
#DMOJ_PDF_PROBLEM_CACHE = '/home/dmoj-uwsgi/pdfcache' # Path to use for nginx's X-Accel-Redirect feature #DMOJ_USER_DATA_CACHE = '/home/dmoj-uwsgi/datacache' # Path to use for nginx's X-Accel-Redirect feature
UPLOADS 子博客相对于 ABSPATH 的指定上传目录的相对路径 默认:UPLOADBLOGSDIR /{blogid}/files/ WPMU_ACCEL_REDIRECT 设置是否支持 X-Accel-Redirect
fastcgi_ignore_headers name [name…] 使用字段:http, server, location 这个指令禁止处理一些FastCGI服务器应答的头部字段,比如可以指定像”X-Accel-Redirect
filed 为要设置的HTTP相应头的头域信息,例如"X-Accel-Redirect" "X-Accel-Expires" "Expores " "Cache-Control " "Set-Cookie
如果一个内置的从一个服务器组到另一个服务器组的重定向使用X-Accel-Redirect” or error_page ,那么那些服务器组以冒号隔开,例如“192.168.1.1:80, 192.168.1.2
以下字段将被忽略:X-Accel-Redirect、X-Accel-Expires、X-Accel-Limit-Rate(1.1.6)、X-Accel-Buffering(1.1.6)、X-Accel-Charset 如果未禁用,则处理这些头字段产生以下效果: X-Accel-Expires、Expires、Cache-Control、Set-Cookie 和 Vary 设置响应缓存的参数 X-Accel-Redirect
其中,field为要设置的 HTTP 响应头的头域,例如「X-Accel-Redirect」、「X-Accel-Expires」、「Expires」、「Cache-Control」或「Set-Cookie
proxy_pass_header header1; 配置块 http server location 功能与 proxy_hide_header相反,是设置哪些头部允许转发. proxy_pass_header X-Accel-Redirect