nginx 匹配.zip .apk 结尾的文件 直接下载

server {
        listen       80;
        server_name ok.xidd.com;
        index index.html index.htm index.php;
        root /alidata/www/xidd;
        location ~ .*.(php|php5)?$
        {
                #fastcgi_pass  unix:/tmp/php-cgi.sock;
                fastcgi_pass  127.0.0.1:9000;
                fastcgi_index index.php;
                include fastcgi.conf;
        }
#------------------------------------#
        location /    #增加这个匹配规制
        {
        if ($request_filename ~* ^.*?/.(zip|apk)$) 
        {
        add_header Content-Disposition: 'attachmet;';
        }
        }
#--------------------------------------#
        location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$
        {
                expires 30d;
        }
        location ~ .*.(js|css)?$
        {
                expires 1h;
        }

        access_log  /alidata/log/nginx/access/mall.log;
}

 

还有一个为题apk如果匹配下载是会被转换成zip格式,下面的配置会解决这个问题:

[root@iZ259jr6xbtZ conf]# pwd
/alidata/server/nginx/conf
[root@iZ259jr6xbtZ conf]# vi mime.types
    application/zip                       zip;
    application/vnd.android.package-archive apk;#添加这一条

 重新家在配置文件!!

.apk 和 .ipa分别是android应用和ios应用的扩展名。
如果在浏览器下载这些文件为后缀的文件时,会自动重命名为zip文件。
当然可以下载后手动修改后缀,依然可以安装。
如果想下载后缀直接就是apk ipa的,可以修改 /usr/local/nginx/conf目录下的mime.types
增加如下配置,重启nginx生效
application/vnd.android.package-archive apk;
application/iphone          pxl ipa;
注意:上面的配置只是在nginx那层好了,但如果你是用nginx+tomcat的方式,在ie下还是会变成zip的
还需要在tomcat里面配置conf/web.xml 里指定了apk类型
   <mime-mapping>
        <extension>apk</extension>
        <mime-type>application/vnd.android.package-archive</mime-type>
    </mime-mapping>
注意:重新测试的时候必须关闭ie浏览器 重新启动一个才能生效(关闭tab标签栏的不起作用)
原文地址:https://www.cnblogs.com/bass6/p/5500660.html