无法将大file upload到nginx后面的服务器作为反向代理

我使用nginx作为反向代理。 在它后面是apache hoo foo.com。 为了上传一个大文件,我在php.ini中设置了post_max_size = 20Mupload_max_filesize = 20M 。 但是我无法上传大小超过2MB的文件。 我的nginxconfiguration是:

 server { listen 80; server_name .foo.com; if ($http_host != "www.foo.com") { rewrite ^ http://www.foo.com$request_uri permanent; } access_log /var/log/nginx/foo.access.log; error_log /var/log/nginx/foo.error.log; index index.php index.html; location / { proxy_pass http://192.168.1.2:80/; include /etc/nginx/proxy_params; proxy_buffering off; chunked_transfer_encoding on; } } 

另外我configurationnginx.conf如下:

 http { ... sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 600; client_max_body_size 200M; types_hash_max_size 2048; # server_tokens off; include fastcgi_params; fastcgi_read_timeout 600; proxy_connect_timeout 600; proxy_send_timeout 600; proxy_read_timeout 600; send_timeout 600; ... } 

任何想法如何解决这个问题?

在nginx.conf中设置最大主体大小。

client_max_body_size 20M;

也转到/etc/php5/fpm/php.ini

; PHP将接受的POST数据的最大大小。

post_max_size = 100M

; 上传文件的最大允许大小。

upload_max_filesize = 100M

将这个参数添加到你的nginx.conf的http部分:

 proxy_connect_timeout 300; proxy_send_timeout 300; proxy_read_timeout 300; proxy_buffer_size 512k; proxy_buffers 32 4m; proxy_busy_buffers_size 25m; proxy_temp_file_write_size 10m;