LoginSignup
1
1

More than 5 years have passed since last update.

大容量のJSONをサーバに送信するとエラーになる問題の対策

Posted at

概要

画像をbase64にしてJSONに変換してサーバに送信し、MySQLにぶち込む。
エラーが出る。

413 Request Entity Too Large

413 Request Entity Too Largeとか


2016/10/03 08:48:09 [warn] 8080#0: *1 a client request body is buffered to a temporary file /var/cache/nginx/client_temp/0000000001, client: 10.0.2.2, server: local.vm, request: "POST / HTTP/1.1", host: "local.vm:8080", referrer: "http://local.vm:8080/"
2016/10/03 08:48:10 [error] 8080#0: *1 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 10.0.2.2, server: local.vm, request: "POST / HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fpm/php-fpm.sock:", host: "local.vm:8080", referrer: "http://local.vm:8080/"

対策

やばいのかもしれんが、nginxのconfにこれを書く。


# upload max size
client_max_body_size 20m;
client_body_buffer_size 20m;

それでも500とか502が出る

アプリ側のエラーメッセージに以下のようなものが。


Error while sending QUERY packet.

MySQLに送るデータの容量がでかいとこういうエラーが出るそうな。

対策

やばいのかもしれんが、my.cnfにこれを書く。


[mysqld]
max_allowed_packet=16MB

MySQLへのぶっこみに関しては、アプリで制御できるはずなので、こっちはあんまり怖くないかも。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1