您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> Web开发 >> lnamp下apk下载,IE和chrome都可以正常下载,但是firefox显示乱码。

lnamp下apk下载,IE和chrome都可以正常下载,但是firefox显示乱码。

来源:网络整理     时间:2016/5/27 2:25:12     关键词:firefox,chrome

关于网友提出的“lnamp下apk下载,IE和chrome都可以正常下载,但是firefox显示乱码。”问题疑问,本网通过在网上对“lnamp下apk下载,IE和chrome都可以正常下载,但是firefox显示乱码。”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题:lnamp下apk下载,IE和chrome都可以正常下载,但是firefox显示乱码。
描述:

我的网站架构比较简单,所有的软件都在一台机器上。Nginx在前段监听80端口,负责做反向代理将接收到的请求转发给81端口的apache处理。Nginx可以解析php页面因为安装了php-fpm,apache也可以解析php页面,因为php作为模块加载在apache里。

这个是虚拟机(/usr/local/nginx/conf/vhosts/newdata.conf)的配置文件:

server {

    listen 80;

    server_name   newdata.downloadatoz.com;

 

       ## send request back to apache ##

    location / {

        proxy_pass  http://127.0.0.1:81;

 

        #Proxy Settings

        proxy_redirect     off;

        proxy_set_header   Host             $host;

        proxy_set_header   X-Real-IP        $remote_addr;

        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;

        proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;

        proxy_connect_timeout      300;

        proxy_send_timeout         300;

        proxy_read_timeout         300;

        proxy_buffer_size          512k;

        proxy_buffers              32 512k;

        proxy_busy_buffers_size    512k;

        proxy_temp_file_write_size 512k;

   }

}

这个是apache虚拟机(/etc/httpd/conf/vhosts/newdata.conf)的配置文件

    DocumentRoot /home/wwwroot

    ServerName newdata.downloadatoz.com

    UseCanonicalName Off

    ErrorLog logs/newdata.downloadatoz.com_error_log

    CustomLog logs/newdata.downloadatoz.com_access_log common

   

    #    Options Indexes FollowSymLinks

        Options None

        AllowOverride all

        Order Allow,Deny

        Allow from all

   

上面就是我的架构,现在的情况是我下载这个网站下的apk时,用iechrome下载都是正常的,可以下载到apk但是用firefox下载就是乱码了。我也试过 "IP:81/apk文件名" 来下载,这个可以正常下载。我猜测问题还是出在firefox和nginx的处理机制上。

因为出现这样的问题所以我就尝试把apache去掉了,直接用nginx作处理请求。这种情况下用三种浏览器都可以正常下载。

 

我哪里叙述的不清楚,前各位辈在跟我沟通。谢谢各位前辈。


解决方案1:

引用来自“eechen”的评论

对于没有在mime.types定义的文件类型(比如apk),Nginx会默认当做Content-Type: application/octet-stream来处理,用curl -I测试可见.
http {
    include       mime.types;
    default_type  application/octet-stream;
}
确定你没有设置 default_type 'text/plain'; 否则当mime.types里没有匹配时,会把未知类型的文件当做text/plain返回给浏览器.解决方案2:

的确没有设置default_type 'text/plain'; 但是在gzip类型里添加了有'text/plain'这一项,后来我把这个从gzip里去掉,然后就可以正常下载了。使用firefox的firebug调试可以发现服务器端(nginx)会把apk文件的传输类型识别为'text/plain'然后进行压缩,最后就出现了乱码。当我把'text/plain'从压缩类型里去掉时就可正常下载了,但是服务器端响应 请求文件的类型还是‘text/plain’。为什么在gzip里掉“text/plain”后就可以正常下载了呢?这里面的原理还是不太明白,希望前辈可以讲讲。

解决方案3:

对于没有在mime.types定义的文件类型(比如apk),Nginx会默认当做Content-Type: application/octet-stream来处理,用curl -I测试可见.
http {
    include       mime.types;
    default_type  application/octet-stream;
}
确定你没有设置 default_type 'text/plain'; 否则当mime.types里没有匹配时,会把未知类型的文件当做text/plain返回给浏览器.


以上介绍了“lnamp下apk下载,IE和chrome都可以正常下载,但是firefox显示乱码。”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/1329856.html

相关图片

相关文章