nginx 实现文件下载 文件预览

本文详细解析了Nginx服务器的配置文件,包括如何设置监听端口、域名、字符集等基本配置,以及如何启用gzip压缩,设置压缩类型和级别。此外,还介绍了如何通过Nginx实现文件的强制下载和预览功能,包括自定义下载文件名和根据不同参数访问不同质量的图片。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

server {
    listen       80;
    server_name  file.domin.com;
    charset utf-8;
    gzip on;
    gzip_min_length 1k;
    gzip_buffers 4 16k;
    gzip_comp_level 5;
    gzip_types  text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png image/x-icon;

    charset_types text/css application/javascript application/json text/plain;

	# 强制文件下载 
	# 携带filename参数 即可自定义名称
	# 如:http://file.domain.com/download/a.jpg?filename=中文abc.jpg
    location ^~ /download/ {
        add_header Content-Disposition "attachment;filename*=UFT-8''$arg_filename";

        alias /home/user/storage/high/;
        break;
    }

	# 文件预览
	# 分别将文件的高中低质量存放在 high、middle、low 文件夹中
    # 根据参数img-process 访问不同压缩质量的文件,默认高质量
    # 如中质量:http://file.domain.com/a.jpg?img-process=img-quality-middle

    location ^~ / {
        set $fpwd '/home/user/storage/high/';
        if ( $arg_img-process = 'img-quality-low' ) {
            set $fpwd '/home/user/storage/low/';
        }

        if ( $arg_img-process = 'img-quality-middle' ) {
            set $fpwd '/home/user/storage/middle/';
        }

        if ( $arg_img-process = 'img-quality-high' ) {
            set $fpwd '/home/user/storage/high/';
        }

        # 判断文件是否存在
        if ( !-e $request_filename ) {
           set $fpwd '/home/user/storage/high/';
        }

        alias $fpwd;
        break;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值