IT虾米网

nginx搭建静态文件下载服务器

yjmyzz 2022年11月07日 程序员 204 0

配置文件大致内容

server { 
    # 监听8001端口 
    listen       8001; 
    server_name  192.168.0.2; 
    # 指定使用utf8的编码 
    charset utf-8; 
    # 内容根目录 
    root /home/data/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; 
        # 启用异步IO,需要配合direcio使用 
        aio on; 
        # 大于10MB的文件会采用直接IO的当时进行缓冲读取 
        directio 10m; 
        # 对齐文件系统块大小4096 
	directio_alignment 4096; 
	# 启用分块传输标识 
	chunked_transfer_encoding on; 
	# 文件输出的缓冲区大小为128KB 
	output_buffers 4 32k; 
    } 
} 

附注

  • 异步文件传输是通过直接读取硬盘文件的方式来实现的,对大文件的传输速度有明显提升,但对于小文件,更适合使用零复制。
  • 如果基于Windows平台,大部分参数都用不了。字符集需要加上gbk,且目录名不能有中文(也可以修改Windows系统强制使用utf-8字符集)
  • 个人一般放在局域网下给同事们下载一些常用的东西,省了配置共享文件夹,而且跨系统平台,Linux或MacOS或手机,有浏览器就能下载文件。
  • 注意开放端口。
  • 安全起见,最好做一下nginx的IP访问控制。

本文参考链接:https://www.cnblogs.com/XY-Heruo/p/14708905.html
评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!