使用的是场景
附件下载的服务器与web服务器是区分开来的。附件下载的文件夹通过nfs映射到web服务器。
那怎么通过nginx可以直接下载呢?
答案很简单,通过nginx 再配置一个路径。配置如下 ,包括了web与附件文件夹的设置。
server {
listen 8888;
server_name 127.0.0.1;
#**web文件件设置**
location / {
root \web;
index index.html index.htm;
proxy_buffer_size 64k;
proxy_buffers 32 32k;
proxy_busy_buffers_size 128k;
client_max_body_size 1000m;
proxy_set_header X-Forwarded-For $remote_addr;
}
#**附件文件夹设置**
location /ftpfiles {
alias \ftpfiles;
}
}
这样,通过location/ftpfiles/+文件名
就能下载到附件了。无需下载api。
ps:
nginx是通过alias设置虚拟目录,在nginx的配置中,alias目录和root目录是有区别的:
1)alias指定的目录是准确的,即location匹配访问的path目录下的文件直接是在alias目录下查找的;
2)root指定的目录是location匹配访问的path目录的上一级目录,这个path目录一定要是真实存在root指定目录下的;
3)使用alias标签的目录块中不能使用rewrite的break(具体原因不明);另外,alias指定的目录后面必须要加上"/“符号!!
4)alias虚拟目录配置中,location匹配的path目录如果后面不带”/",那么访问的url地址中这个path目录后面加不加"/“不影响访问,访问时它会自动加上”/";
但是如果location匹配的path目录后面加上"/",那么访问的url地址中这个path目录必须要加上"/",访问时它不会自动加上"/"。如果不加上"/",访问就会失败!
5)root目录配置中,location匹配的path目录后面带不带"/",都不会影响访问。