nginx ボックスの最適なアプローチを見つけようとしています。もちろん、私の目標は、可能な限り最高のパフォーマンスと、ユーザーにとって最高の読み込み時間です。
そのため、nginx の負荷テストを行っていたところ、nginx フォーラムの maxim-dounin の助けを借りて、スループットの問題が静的アセットのオンザフライ gzip であることがわかりました。
ビルド プロセスですべてを事前に gzip する必要があります。これは非常に簡単です。動的コンテンツの gzip は、コンプ レベル @ 1 または 2 でのみオンザフライで行います。これにより、CPU を節約し、できるだけ多くのユーザーにサービスを提供できるようになります。 aws m1.small ec2 インスタンスで可能です。
しかし、ngx_pagespeed を使用して、これらの静的アセットを最適化し、縮小し、結合し、ngx_pagespeed がうまく機能するものも使用するつもりです。つまり、イメージを回避して、ビルド プロセスで jpgoptim と pngoptim を実行できますが、css/js を組み合わせるのは難しいです。
これらの ngx_pagespeed 設定を使用しています:
pagespeed on;
pagespeed EnableFilters combine_css,combine_javascript,canonicalize_javascript_libraries,collapse_whitespace,convert_meta_tags,dedup_inlined_images,flatten_css_imports,inline_import_to_link,inline_css,inline_javascript,rewrite_javascript,remove_comments,rewrite_css,rewrite_images,convert_gif_to_png,recompress_png,convert_jpeg_to_progressive,strip_image_color_profile,strip_image_meta_data,insert_image_dimensions;
pagespeed JpegRecompressionQuality 80;
pagespeed FileCacheSizeKb 256000; #256mb
pagespeed FileCacheCleanIntervalMs 3600000;
pagespeed FileCacheInodeLimit 500000;
pagespeed FileCachePath /run/shm/nginx/pagespeed_cache;
pagespeed Statistics on;
pagespeed StatisticsLogging on;
pagespeed LogDir /var/log/pagespeed;
pagespeed LowercaseHtmlNames on;
ngx_pagespeed が nginx gzip_static でどのように機能するかについてのアイデアはありますか? つまり、私の理解が進む限り、ngx_pagespeed は nginx の「前」で実行されています。これは、最適化するすべてのものを tmpfs にキャッシュするためです。サーバーが tmpfs からサーバーする既に最適化されたアセットにヒットした場合、キャッシュ フォルダーで gzip 圧縮されたファイルを探しましたが、何も見つかりませんでした。まず第一に、ngx_pagespeed は独自の gzip を実行しますか? その場でそれを行いますか、それともgzipされたバージョンをキャッシュしますか?
nginx (gzip_static on) からすでに gzip されたアセットを受け取るとどうなりますか? 最適化後に解凍してから再度 gzip する必要がありますか?
事前に圧縮された静的アセットと ngx_pagespeed の最適化を提供するという、両方の長所を活かすにはどうすればよいでしょうか?
どうもありがとうございました。