MENU

基于nginx搭建下载服务器

• December 9, 2020 • Read: 222 • 主机

前言

有时候会面临需要把远程服务器的文件下载到本地的需求,这时候就需要搭建下载服务器了。常见的有专门用于下载的FTP服务,但这里我使用HTTP服务,之前介绍过使用python的simpleHTTP来创建临时的下载服务器,只需要一句命令就够了,很方便。但是simpleHTTP不支持多线程,对大文件下载来说不是那么友好。本文介绍另一种基于nginx的下载服务器搭建方法。

搭建过程

由于服务器安装的是宝塔的LNMP,宝塔在安装nginx的时候修改了其安装路径为/www/server/nginx/sbin/nginx,如果是手动安装的nginx,那么其路径可能为/usr/local/nginx/sbin/nginx,后续的命令应该做相应的修改。

1.创建nginx配置文件

由于使用了宝塔,而宝塔创建网站时的配置文件路径为/www/server/panel/vhost/nginx,因此我也是在该路径下创建了新的配置文件tempdl.conf。内容如下:

server {
    listen  6789; # 端口
    server_name    11.22.33.44; # 服务器的ip或者服务器的域名
    charset utf-8; # 避免中文乱码
    root /home/files/downloads; #下载目录(好像不能是root下的目录)
    location / {
        autoindex on; # 索引
        autoindex_exact_size off; # 粗略显示文件大小
        autoindex_localtime on; # 显示文件时间
        # 限速100K
        #limit_rate 100k;
    }
    access_log  /www/wwwlogs/yourServerName.log;  # 网站访问日志
    error_log  /www/wwwlogs/yourServerName.error.log; # 网站错误日志
}

2.重载配置文件

在重载配置文件前,可以先测试配置文件是否有错误:

/www/server/nginx/sbin/nginx -t

重载配置文件:

/www/server/nginx/sbin/nginx -s reload

3.打开防火墙端口

将第一步配置文件中的端口在防火墙中放行

使用

1.浏览器下载

经过上面的步骤下载服务器已经搭建好了,下载文件时只需浏览器中打开http://IP(或域名):端口即可。这种方式适合小文件。

2.wget下载

wget是一个好用的命令行下载工具。
下载单文件:

wget $url

下载目录:

wget -r -np -nH $url

参数说明:
-r:递归下载(下载目录下所有文件),默认递归5层
-np:no_parrent,不向上遍历父目录
-nH:不建立顶层IP(域名)目录
-c:自动重试,断点续传,大文件必备
-b:后台运行,关闭shell也不会中断,自动生成wget-log日志文件
-o logfile:指定输出日志文件为logfile,覆盖式
-a logfile:指定输出日志文件为logfile,追加式
-i urlfile.txt:批量下载urlfile.txt中的下载链接文件
-A iso,pdf:配合目录下载命令,可以只下载目录下后缀为iso和pdf的文件
-R iso,pdf:配合目录下载命令,可以下载目录下后缀为iso和pdf以外的文件

参考文章

http://www.lymslive.top/blog/20190616_1.html

Last Modified: April 9, 2021