Apache + phpで大きいサイズのファイルをアップロードしたい


大きいファイルをアップロードしたい

前提環境

  • Apache + php
  • DNS解決にnginxのSSLProxy

事象

413(Pay Load Too Large)が表示された
https://developer.mozilla.org/ja/docs/Web/HTTP/Status/413

原因

サーバーまでのどこかしらでアップロードサイズ制限に引っかかっている

調査

アクセスログ

[root@venusDev41 ~]# tailf /var/log/httpd/dev.xxxxx-access.log | grep " 413 "

何もでない

php設定

/etc/php.ini

post_max_size = 8M
upload_max_filesize = 8M

問題なさそう

Apache設定

/etc/httpd/conf/httpd.conf

LimitRequestBody 0

いれてみたが解決せず

ここまで仮説

そもそもアクセスログが出てない=開発サーバーまで来ていない

SSLProxy側のnginxで殺されている

nginx設定

/etc/nginx/nginx.conf

client_max_body_size 1m
proxy_buffer_size 16k;
proxy_buffers 4 64k;
proxy_busy_buffers_size 128k;

client_max_body_size 10m
proxy_buffer_size 64k;
proxy_buffers 4 64k;
proxy_busy_buffers_size 128k;

無事にアップロードできた。