为什么服务器用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/*;

passenger nginx ruby-on-rails

奥巴马·本拉登 10 years ago

首先 我想问的是 你跟合作者测试上传的文件是同一个文件吗? 另外指的合作者是在一个网络内测试的吗。

你可以这样去排查:
首先让你们的测试上传文件是同一个文件 基本上就是大小一样类型一样是最好的,你可以把成功的文件给合作者 看他是否可以。
因为这个可以排查掉因为不同的文件类型或者大小造成的限制问题

如果第一点排查没有问题 再看是局域网和广域网的问题 如果是因为传送超时(某些超时限制和程序没有重试机制)也可能造成 所以建议使用小文件进行测试

再就是 想问下 这个上传程序是公司自己的程序员写的吗? 如果是可以让他们进行一个debug排查。
PS:往往一般跟重装系统不会有太大关系的 如果说跟浏览器有关系 这个可能会有一点影响 主要是看上传程序是怎么写的了。

Branch answered 10 years ago

Your Answer