Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

個人開発した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になっているようです。

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

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

Lmachi
31際で未経験からエンジニアに転向しました。経緯:プログラミングスクールに通いRailsを学ぶ→独学でITを勉強しながら個人開発を続ける→転職しようとしたらコロナ襲来→友人経由で船橋のSESに就職→社内待機が1ヶ月続く→周りの支えもありなんとかRails開発案件に入る
https://twitter.com/Lmachi4
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away