我们常见的文件下载服务有ftp等,但是我们最常使用的nginx也可以实现这个功能。
1.在nginx的conf目录下新建一个down.conf的配置文件,内容如下:
server {
# 监听8888端口
listen 8888;
server_name 127.0.0.1;
# 指定使用utf8的编码
charset utf-8;
# 内容根目录
root C:/Users/fjw/Desktop/down/nginx-1.13.4/download;
location / {
# 自动创建目录文件列表为首页
autoindex on;
# 自动首页的格式为html
autoindex_format html;
# 关闭文件大小转换
autoindex_exact_size off;
# 按照服务器时间显示文件时间
autoindex_localtime on;
default_type application/octet-stream;
# 开启零复制。默认配置中,文件会先到nginx缓冲区,开启零复制后,文件跳过缓冲区,可以加快文件传输速度。
sendfile on;
# 限制零复制过程中每个连接的最大传输量
sendfile_max_chunk 1m;
# tcp_nopush与零复制配合使用,当数据包大于最大报文长度时才执行网络发送操作,从而提升网络利用率。
tcp_nopush on;
# 大于10MB的文件会采用直接IO的当时进行缓冲读取
directio 10m;
# 对齐文件系统块大小4096
directio_alignment 4096;
# 启用分块传输标识
chunked_transfer_encoding on;
# 文件输出的缓冲区大小为128KB
output_buffers 4 32k;
}
}
其中listen 8888是我们要使用的接口,首先确保这个端口没有被占用;server_name 127.0.0.1为主机地址;内容根目录是我们需要下载的文件的存放的地方,比如我把需要的下载的图片都放在C:/Users/fjw/Desktop/down/nginx-1.13.4/download的里面。启动nginx
2.这时候其他人想访问下载的时候,只需要访问127.0.0.1:8888地址即可
或者知道需要下载的文件名字直接也可以127.0.0.1:8888/tyyy-server.jar
这样就相当于用nginx搭了一个小的文件存储下载容器。