AIGC标识 Ubuntu搭建nginx做文件下载服务器

搭建 Nginx 文件下载服务器

1. 安装 Nginx

sudo apt update
sudo apt install -y nginx
sudo systemctl enable --now nginx

检查服务:

systemctl status nginx

2. 创建下载目录

建议把文件放在 /srv/downloads

sudo install -d -m 0755 -o root -g www-data /srv/downloads
sudo cp /你的文件路径/example.zip /srv/downloads/

修正已有文件的读取权限:

sudo find /srv/downloads -type d -exec chmod 755 {} \;
sudo find /srv/downloads -type f -exec chmod 644 {} \;

Nginx 只需要读取权限,不建议把目录设置成 777

3. 创建 Nginx 配置

sudo nano /etc/nginx/sites-available/download-server

填入:

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    server_name _;
    charset utf-8;

    location = / {
        return 302 /download/;
    }

    location /download/ {
        alias /srv/downloads/;

        # 开启目录列表
        autoindex on;

        # 使用 KB、MB、GB 显示文件大小
        autoindex_exact_size off;

        # 显示服务器本地时间
        autoindex_localtime on;

        # 提高静态文件传输效率
        sendfile on;
        tcp_nopush on;

        # 仅允许下载和查看
        limit_except GET {
            deny all;
        }
    }
}

注意:location /download/alias /srv/downloads/ 末尾的 / 都要保留。目录列表相关指令可参考 Nginx autoindex 官方文档

4. 启用配置

如果这台服务器专门用于文件下载,可以禁用默认站点:

sudo rm /etc/nginx/sites-enabled/default
sudo ln -s /etc/nginx/sites-available/download-server /etc/nginx/sites-enabled/download-server

检查配置并重载:

sudo nginx -t
sudo systemctl reload nginx

Ubuntu 官方也建议在修改配置后先测试,再重新加载 Nginx:Ubuntu Nginx 配置文档

5. 开放防火墙

如果启用了 UFW:

sudo ufw allow 'Nginx HTTP'
sudo ufw status

如果是云服务器,还需要在阿里云、腾讯云、AWS 等平台的安全组中放行 TCP 80 端口。

现在访问:

http://服务器IP/download/

具体文件地址例如:

http://服务器IP/download/example.zip

可选:增加密码保护

先安装密码工具:

sudo apt install -y apache2-utils
sudo htpasswd -c /etc/nginx/.downloads.htpasswd downloaduser

然后在 location /download/ 内加入:

auth_basic "File Download";
auth_basic_user_file /etc/nginx/.downloads.htpasswd;

再次应用配置:

sudo nginx -t
sudo systemctl reload nginx

密码验证应配合 HTTPS 使用,否则密码可能通过明文 HTTP 传输。

常见问题

  • 出现 403 Forbidden:通常是 /srv/downloads 或其上级目录缺少读取、进入权限。
  • 出现 404 Not Found:检查 locationalias 末尾的斜杠。
  • 外网无法访问:检查 UFW、云服务器安全组、路由器端口映射。
  • 中文文件名乱码:确认配置中有 charset utf-8;,文件名本身也应使用 UTF-8。
  • 想限制下载速度:可以在 location 中增加 limit_rate 5m;,表示单个连接约限制为 5 MB/s。sendfilelimit_rate 的具体行为见 Nginx 核心模块文档

`

如果 Xftp 上传到 /srv/downloads 提示“权限不足”,在 Ubuntu 上执行:

sudo chown -R "$USER":www-data /srv/downloads
sudo find /srv/downloads -type d -exec chmod 755 {} \;
sudo find /srv/downloads -type f -exec chmod 644 {} \;
posted @ 2026-07-30 10:57  Actorw  阅读(36)  评论(0)    收藏  举报