我使用nginx作为反向代理。 在它后面是apache hoo foo.com。 为了上传一个大文件,我在php.ini中设置了post_max_size = 20M和upload_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;