nginx 常见错误及解决方式

来源:互联网 发布:char数组占几个字节 编辑:程序博客网 时间:2024/04/29 03:20
  1. 413 Request Entity Too Large(原文链接 http://ddbiz.com/?p=141)

    通过 nginx/linux 转发到 asp.net/iis 上的一段文件上传,出现了 413 Request Entity Too Large的错误。这是因为上传的文件太大造成,可以修改 server {} 中的如下值:

    client_max_body_size 1m;  ==>

    client_max_body_size 5m;  

    增加内容传输的数据量

  2. proxy_pass的iis端无法获得客户端传来的文件

    这个问题是紧跟第一问题出现的。

    nginx的一个virtual host的配置为:

    server{

    location ~ {

    proxy_pass http://localhost:1237;

    client_max_body_size 5m;

    ... ...

  }
  }
   nginx把客户端上传的文件转发给 http://localhost:1237; 最初的配置采用默认配置,client_max_body_size = 1m; 大于1m的图片不能被接受。但是当我们把 client_max_body_size=5m;后,图片是可以上传了(可以通过设定 location {client_body_in_file_only on;}看到 nginx 把传入的内容存入了目录),但是后端的iis/asp.net在获取 httprequest.files时,出现超时,不能正确获得上传的文件。
经过仔细调试配置,发现,除了在 location {client_max_body_size 5m;} 之外,server {client_max_body_size 5m;}的这个设置也不能缺失。虽然没有仔细测试过,但是直觉上,server.client_max_body_size > location.client_max_body_size时,location下的转发才能发挥作用。
(原文链接 http://ddbiz.com/?p=141)