今天遇到一个问题。用户反馈下载APP新版安装包失败。但是我尝试复现的时候发现没问题。浏览器上可以正常下载。困惑很久。在反复尝试多次后。终于复现了问题。
打开日志,发现网络被拒绝访问了。nginx 403 forbidden 错误
错误日志如下:
W/System.err: java.io.FileNotFoundException: http://www.hun***.cn/download/***/yan**she_2.6.1.apk
W/System.err: at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:250)
问题解决办法 :
将服务器的文件权限从-rw-------
改为 -rw-r--r--
。问题解决。
问题分析:
1、nginx是非root权限启动,但是yan**she_2.6.1.apk是root权限上传。所以nginx没有权限读取文件。所以被拒绝访问,返回403错误。
2、问什么有时候会成功?原因是下载该文件有两个服务器,服务器的路由策略原因,如果路由到另外一台服务器则可以正常下载。反之则失败。
网友评论