为什么服务器用nginx上传文件总是失败?
具体的情况是:
我有一个app(rails+passenger+nginx),其中提供一上传功能给用户上传文件.
我部署到服务器上后测试
1: 用我的电脑上传文件一切ok
2: 用我公司里的电脑上传文件也ok
3: 提供给合作者时,当上传文件到一半时页面链接中断.
4: 合作者用他公司的电脑上传,也是上传一半就中断链接.
5: 合作者有时能上传(这种几率很小)大多数是上传一半页面就断掉了
我登录到服务器上,查看日志发现并没有什么异常发生.
ps: 合作者之前重做过系统(在未做系统之前能上传).用的是firefox浏览器,也用过ie浏览器都失败了
我猜想是合作者的网络出现了问题.也有一种可能是我的nginx配置出了问题.
目前没有找到合适的切入点来查这个问题.先把问题贴出来,希望大家帮忙出出主意
下面是我的nginx配置文件:
include mime.types; default_type application/octet-stream; log_format simple '$remote_addr - [$time_local] "$request" $status $body_bytes_sent'; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 180; include /opt/nginx/conf/sites-enabled/*;
奥巴马·本拉登
10 years, 8 months ago
Answers
首先 我想问的是 你跟合作者测试上传的文件是同一个文件吗? 另外指的合作者是在一个网络内测试的吗。
你可以这样去排查:
首先让你们的测试上传文件是同一个文件 基本上就是大小一样类型一样是最好的,你可以把成功的文件给合作者 看他是否可以。
因为这个可以排查掉因为不同的文件类型或者大小造成的限制问题
如果第一点排查没有问题 再看是局域网和广域网的问题 如果是因为传送超时(某些超时限制和程序没有重试机制)也可能造成 所以建议使用小文件进行测试
再就是 想问下 这个上传程序是公司自己的程序员写的吗? 如果是可以让他们进行一个debug排查。
PS:往往一般跟重装系统不会有太大关系的 如果说跟浏览器有关系 这个可能会有一点影响 主要是看上传程序是怎么写的了。
Branch
answered 10 years, 8 months ago