私はhereについてはthisとRailsのドキュメントを読んでいますが、概念的には2つのことについてまだ混乱しています。CDNはどのようにRailsアプリケーションで動作しますか?
コントローラとモデルのようなRailsファイルはいつ再生されますか?
イメージが更新されたら、どのようにCDNキャッシュを無効にしますか?
しかし、動的コンテンツを持つファイルについては、ユーザーの名前や住所のようなものはどうでしょうか。どのように処理されますか?
これは私の理解です。私はmisspeakなら、私を修正してください:
要求が行われる。まず、myrailsapp.com
に言う私たちは今(それはcdnmyrailsapp.com
だと言う)CDNアドレスにmyrailsapp.comのCNAMEを指摘しているため、要求は最初のCDNに行きます。私は、DNSサーバがこれらの要求をCDNにルーティングすることを理解していると思います。 CDNは、キャッシュされたコンテンツがあるかどうかをチェックします。それがなければ、CDNが実際のサーバーに要求を転送すると思いますか? Rails用のコントローラがヒットし、静的なアセットまたはjavascriptファイルがCDNに渡されるのはそのときです。将来、そのファイルに対するすべての要求は、CDN上のキャッシュされたバージョンを使用します。
通常、リクエストが入ってコントローラにルーティングされます。そのアクション内のどのモデルでも必要なデータを取得し、そのデータをビューに転送します。これは、ビューのためにページをロードしている間、CDNからのデータを取得することになります。 Railsはプリコンパイルされた指紋IDを使ってこれらのアセットをキャッシュします。これらのアセットが変更された場合にのみ、キャッシュをスキップします。 – bkunzi01
CDNは、動的に変更されないアセット(画像、スタイルシートなど)をキャッシュするためのものです。 DNSはCDNについて知りません。env.fileにconfig.action_controller.asset_hostを設定しているため、アプリケーションが実行します。だから、それはCDNから資産を「取得」するレールアプリです。動的なものをリクエストするたびに、アプリはそれをオンザフライで作成します。そのレベルでのキャッシュは、CDNではなくアプリケーション自体で実行されます。 –