- 论坛徽章:
- 0
|
我在linux下使用nginx做文件下载服务器
html目录下有aa.exe这个文件,当用户访问www.test.com/aa.exe时,会下载aa.exe
我想实现当用户访问www.test.com/bb.exe时也用户也是下载aa.exe,但是在浏览器中显示的文件名是aa.exe
我对这个问题所做的思考与尝试:
1.rewirte到aa.exe,这个方法肯定可行,但是会使浏览器中显示的文件名为aa.exe,而不是用户输入的bb.exe
2.访问404时,重定向到一个Php文件,通过header('Content-Disposition: attachment; filename="aa.exe"');指定文件名。
但是很多版本旧的浏览器并不支持这个选项,很多用户的浏览器版本都很旧
3.php发送文件的方法:理论可以通过php读取文件无论用户输入什么文件名,都通过php读取文件然后发送,这样不会改变文件名。
但是这个方法,似乎是一个效率很低的方法,并且大并发会很占用内存吧?这个方法我感觉性能不行,并且不会写php,所以没有具体去测试。
请大家指点迷津。。
另外:当使用nginx作为下载文件服务器时,有几个疑问:
1.使用sendfile是不是会更加效率呢?(都是10M以下的文件)
2.如果使用sendfile,是不是每次数据都从硬盘到网卡?那么硬盘的读写速度是否会成为瓶颈呢?
谢谢 |
|