Nginx搭建文件下载服务器

我的网站需要支持文件下载的功能,同时首页只用来充当门面,作为服务器的Nginx,只要调整一下配置文件就能实现这些功能。

我的Nginx默认配置文件在/etc/nginx/conf.d/default.conf下。修改default.conf内容为

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
server{
listen 80;
server_name localhost;

location / {
#root /usr/share/nginx/html;
alias /usr/share/nginx/html/;
index index.html index.htm;
}

location /downloads {
#root /usr/share/nginx;
alias /usr/share/nginx/downloads/;
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
}
}

其中第一个location是首页,专门用来充当网站门面。有两种写法,注意root和alias的写法的不同。alias比root在结尾处多了一个/。

第二个location就是我的文件下载路径。设置autoindex等参数就能实现文件下载功能。注意root和alias的写法的区别。这也是最容易让新手搞混淆的地方。alias其实相当于root+location。

注意,alias路径下的文件夹(每一级)都必须对other用户开通x权限,也就是可执行权限,用户才能够访问到该文件夹。对于要下载的文件,必须对other用户开通r权限,也就是可读权限。默认在/usr/share/nginx/下的文件或文件夹,不需要特别的操作,系统已经分配好了权限。但是如果要指定到自己的目录下,就必须注意权限问题,否则很有可能造成无法访问文件或文件夹。

最后来看一下效果图



avatar

chilihotpot

You Are The JavaScript In My HTML