0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

チャンク転送でMiniMagickの画像アップロード速度が劇的に改善した。

Last updated at Posted at 2019-11-06

個人開発したRailsアプリでMiniMagickを使っているのですが、画像のアップロードに2分以上かかっていました。

nginxでチャンク転送の設定をしたら、10秒ほどに短縮することができました。

自分用の学習記録ですが、少しでも役に立てれば嬉しいです。

また、画像データのアップローと表示速度はもっと上げたいので、他にいい方法があれば教えていただけるとありがたいです。

チャンク転送

チャンク転送とは簡単に言うと、データをチャンクと言う単位に分割して転送することだそうです。

通常、動的に画像を生成するような場合、ファイルのサイズがわかるまでレスポンスが返せないため、サーバーの応答性能が低下してしまいます。
チャンク転送を使うことで、最終的なサイズがわからないボディを少しずつ転送できます。

HTTPのヘッダで設定を行います。

Transfer-Encoding:chunked

nginxでチャンク転送設定

Webサーバーにnginxを使っているので、nginxでチャンク転送の設置を行います。

confファイルのserverディレクティブに以下を追加。

/etc/nginx/conf.d/hoge_app.conf
chunked_transfer_encoding on;

設定を反映させるためのnginx再起動。

$ sudo systemctl restart nginx

これだけです。

チャンク転送の設定が完了しました。

これで画像のアップロード速度が改善されるはずです。

されてなかったら、お力になれずすみません。

補足

nginxの公式サイトを確認すると、チャンク転送はどうやらデフォルトでonになっているようです。

なので、実際どこまで効果があるのかはわかりませんが、僕の場合は一行追加することで画像のアップロード速度が劇的に改善しました。

なので、よかったら試してみてください。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?