Fork me on GitHub

静的コンテンツ

Webサイトのいくつかのコンテンツには、それ自体に変更を行わない種類のものがあり、直接WebサーバやContent Delivery Network(CDN)から配信することがあります。例えば、JavaScriptや画像、CSSのようなファイルです。

静的コンテンツの種類

静的コンテンツにはランディンページに利用する画像や、ユーザが作成するコンテンツなど、開発プロセス中に生成されるものもあります。Djangoではこれらをassetsmediaと呼びます。

Content Delivery Network

Content Delivery Network(CDN)は静的コンテンツを保管し、配信するためのサービスです。Amazon CloudFrontAkamaiRackspace Cloud Filesなどがあります。CDNの目的は動的なWebコンテンツが扱う静的コンテンツへのリクエストの読み込みを無くすことです。例えば、512MBのVPSで静的コンテンツの配信と、Gunicorn WSGIサーバのフロントとしてNGINXを利用した場合、アクセスが多くなると圧迫した状態で動作することになります。CDNを利用することで静的コンテンツの配信をGunicornへのリクエストのパフォーマンスが下がること無く、静的コンテンツの配信を行うことができるようになります。

CDNはリクエスト元に近いデータセンターからレスポンスが送られるようになっています。

静的コンテンツを学ぶためのリソース

  • django-storagesは、静的コンテンツ、メディアファイルをAmazonS3などのCDN上で管理するためのDjangoライブラリです。

静的コンテンツを学ぶためのチェックリスト

ローカルのWebサーバの代わりに、静的コンテンツを配信するために利用するCDNを決めましょう。Amazon S3とCloundFrontを使うと、セットアップやスケールアップを簡単にできます。

Webアプリケーションの開発プロセスで、静的コンテンツを更新したらCDNにアップロードされるようにしてみましょう。

静的コンテンツをwwwサブドメインで提供する代わりに、static(または類似した名前)サブドメインで配信し、wwwサブドメインへのHTTPリクエストと分散するように静的コンテンツが読み込まれるようにしましょう。

Webアプリケーションを構築するために、次にすることは?

繰り返し行われる操作をキャッシュしてパフォーマンスを改善するには?

アクセス解析をすることで、ユーザの何を学ぶことができますか?

Webアプリケーションのセキュリティについて知っておくべきことは?

サーバの設定を自動化するには?


Interested in a complete Full Stack Python book with detailed tutorials and example code? Sign up here and you'll get an alert email if a book is created. No other emails will be sent other than sign up confirmation.