我已经在各种Ubuntu 8.04服务器上运行了几个月的Nginx上传进度模块,但是在我的一台服务器上,我尝试上传的每个文件都有422个错误(所有文件都在其他服务器上运行)。我的任何日志中都没有告诉我任何内容。
这是nginx给我的回复:“{”state“:”error“,”status“:422}”
服务器配置与其他工作服务器相同。
但这里是非常奇怪的部分:这只发生在我更改了服务器上的域名时(我更改了主机名,主机文件,后缀配置,nginx站点配置和部分Rails)应用程序所有使用新域,重新启动机器等。)我通过整个机器,并没有找到任何旧域名的痕迹。一旦我将域名更改回旧域名,文件上传就会重新开始。
有谁知道如何解决这里发生的事情?我完全难过了。
编辑: 我使用--with-debug重新编译了nginx,这里有一些来自我的日志的调试信息,这些信息似乎与此相关。
2010/11/20 11:55:53 [debug] 8652#0: *13 test location: "upload_progress" 2010/11/20 11:55:53 [debug] 8652#0: *13 using configuration "/upload_progress" 2010/11/20 11:55:53 [debug] 8652#0: *13 http cl:-1 max:10485760 2010/11/20 11:55:53 [debug] 8652#0: *13 generic phase: 2 2010/11/20 11:55:53 [debug] 8652#0: *13 generic phase: 3 2010/11/20 11:55:53 [debug] 8652#0: *13 post rewrite phase: 4 2010/11/20 11:55:53 [debug] 8652#0: *13 generic phase: 5 2010/11/20 11:55:53 [debug] 8652#0: *13 generic phase: 6 2010/11/20 11:55:53 [debug] 8652#0: *13 access phase: 7 2010/11/20 11:55:53 [debug] 8652#0: *13 access phase: 8 2010/11/20 11:55:53 [debug] 8652#0: *13 post access phase: 9 2010/11/20 11:55:53 [debug] 8652#0: *13 http set discard body 2010/11/20 11:55:53 [debug] 8652#0: *13 upload-progress: get_tracking_id 2010/11/20 11:55:53 [debug] 8652#0: *13 malloc: 080E7CA0:8 2010/11/20 11:55:53 [debug] 8652#0: *13 upload-progress: get_tracking_id found header: b3fec 2010/11/20 11:55:53 [debug] 8652#0: *13 reportuploads handler found id: b3fec 2010/11/20 11:55:53 [debug] 8652#0: *13 upload-progress: find_node b3fec 2010/11/20 11:55:53 [debug] 8652#0: *13 upload-progress: found node 2010/11/20 11:55:53 [debug] 8652#0: *13 reportuploads found node: b3fec (rest: 0, length: 168849, done: 1, err_status: 422) 2010/11/20 11:55:53 [debug] 8652#0: *13 http script copy: "{ "state" : "error", "status" : " 2010/11/20 11:55:53 [debug] 8652#0: *13 http script var: "422" 2010/11/20 11:55:53 [debug] 8652#0: *13 http script copy: " } " 2010/11/20 11:55:53 [debug] 8652#0: *13 upload progress: state=1, err_status=422, remaining=168849, length=168849 2010/11/20 11:55:53 [debug] 8652#0: *13 uploadprogress error-tracker error: 0 2010/11/20 11:55:53 [debug] 8652#0: *13 HTTP/1.1 200 OK Server: nginx/0.7.67 Date: Sat, 20 Nov 2010 19:55:53 GMT Content-Type: application/json Content-Length: 39 Connection: keep-alive Expires: Thu, 01 Jan 1970 00:00:01 GMT Cache-Control: no-cache 2010/11/20 11:55:53 [debug] 8652#0: *13 write new buf t:1 f:0 080DF1F0, pos 080DF1F0, size: 219 file: 0, size: 0 2010/11/20 11:55:53 [debug] 8652#0: *13 http write filter: l:0 f:0 s:219 2010/11/20 11:55:53 [debug] 8652#0: *13 http output filter "/upload_progress?" 2010/11/20 11:55:53 [debug] 8652#0: *13 copy filter: "/upload_progress?" 2010/11/20 11:55:53 [debug] 8652#0: *13 http postpone filter "/upload_progress?" BFEB0A78 2010/11/20 11:55:53 [debug] 8652#0: *13 write old buf t:1 f:0 080DF1F0, pos 080DF1F0, size: 219 file: 0, size: 0 2010/11/20 11:55:53 [debug] 8652#0: *13 write new buf t:1 f:0 080DF160, pos 080DF160, size: 39 file: 0, size: 0 2010/11/20 11:55:53 [debug] 8652#0: *13 http write filter: l:1 f:0 s:258 2010/11/20 11:55:53 [debug] 8652#0: *13 http write filter limit 0 2010/11/20 11:55:53 [debug] 8652#0: *13 writev: 258 2010/11/20 11:55:53 [debug] 8652#0: *13 http write filter 00000000 2010/11/20 11:55:53 [debug] 8652#0: *13 copy filter: 0 "/upload_progress?" 2010/11/20 11:55:53 [debug] 8652#0: *13 http finalize request: 0, "/upload_progress?" 1 2010/11/20 11:55:53 [debug] 8652#0: *13 set http keepalive handler 2010/11/20 11:55:53 [debug] 8652#0: *13 http close request
答案 0 :(得分:0)
逻辑上,如果它工作或不起作用,只取决于服务器的域名,并且您没有同时更改任何其他内容,并且您上面写的所有内容都是正确的,那么只有三种可能性:
旧域名被加密,压缩或编译成文件,而不是以纯文本形式出现,这就是代表无法找到它的原因。
您正在更改不应更改的旧域名的配置设置。即忘记更改您应该更改的配置,而忘记不要更改您不应更改的配置。
您依赖于服务器外部的某些东西,它希望看到来自的请求或包含一个域的请求,但您发送的是另一个域。
我最好的猜测(结合上面的第2点和第3点)是您正在使用某些外部服务(Web服务,身份验证服务或类似的东西)并且忘记更新该配置。