自由尋覓快樂別人從沒法感受

0%

使用Nginx搭建下载服务器

使用Nginx搭建下载服务器

下载服务器主要用于存放自己日常使用的安装包和文件

1. 创建文件存放根目录

使用ssh登录服务器,创建文件夹。在这里我使用的是自己的用户和自己用户的根目录,方便文件的管理

1
2
cd ~
mkdir downloads

2. 修改Nginx配置文件

修改Nginx配置文件,将文件夹添加为下载根目录

1
sudo vim /etc/nginx/nginx.conf

在Http Server添加一个location代码块

1
2
3
4
5
6
7
8
location /downloads/ {
alias /home/fisher/downloads/;
autoindex on;
# 只显示文件粗略大小,以k、M等单位计算
autoindex_exact_size off;
# 使用服务器本地时间
autoindex_localtime on;
}

3. 重载Nginx

重新加载Nginx配置文件,使配置生效

1
service nginx reload

这时候用浏览器访问http://hostname/downloads/,出现以下页面,配置成功!

页面根目录

4. 存在的问题

在使用默认的配置下,使用curlwget下载到1m之后就会丢失连接,使用迅雷下载途中会中断多次,在查找并使用了网上的解决方案之后仍然不能解决问题。个人认为是默认缓冲为1m的原因,具体的解决方法待我研究研究。在此先挖一个坑。

问题的解决(2019-11-04)

在研究了sendfile参数、max_chunk_size参数、buffer_size等参数无用之后。今天早上我的Nginx甚至不能正常工作了,无奈之下我只好把Nginx卸载重装。神奇的是重装完之后一切都恢复正常了,不需要加什么特别的参数,使用默认的配置文件就能解决存在的问题了。看来重装能解决99%的问题😂?

5. root和alias的区别

最开始配置location代码块的中的根目录时候,我使用的是root,重载Nginx之后发现404。接着我换成了alias之后就可以了。仔细查了一下文档,这两个参数的区别在于:两者解析URL的方式不同

首先location代码块如下:

1
2
3
location /folder/ {
(root或alias): /home/fisher/downloads/;
}