2017-10-02 4 views
-1

私は動的に重いリソース(例:大きな画像)をロードする方法を見つけるためにしようとしている心の中で以下の制限付きで、世界のさまざまな部分からのユーザのために:世界のさまざまな地域のユーザーに重いリソース(例:大きな画像)を動的に読み込む方法は、1つのアプリケーションサーバーとCDNなしのみです。

  1. 私は1アプリケーションサーバーを持つことができます(複数のアプリケーションサーバーに接続するロードバランサを使用する代わりに)。
  2. しかし、pics/pdfs/videosのような重い静的リソースを格納する複数のストレージサーバー(Webサーバーを実行している)を持つことができます。
  3. (予算上の問題のため)商用CDNを使用することはできません。別のストレージ・サーバに移動するために、異なるIPからのユーザーを導くようにApacheのmod_rewriteのルールを使用して、アプリケーションサーバー上で

    は現在、私は2つのアイデアを持っています。

  4. アプリケーションサーバー(ケーキフレームワークでPHPを使用しています)でコードを変更するので、アプリケーションサーバーはクライアントユーザーのIPに応じて異なるリソースURLを表示します。

私の質問は、どちらがあなたですか、なぜですか?または、結果を達成するための他の方法をお勧めしますか?

+1

は、あなたには、いくつかのCDNを余裕ができるようになります。Splitting the Cache Across Multiple Hard Drivesセクションには、お使いのハードウェアに基づいて、サーバーは、オプションである可能性があります。基本的な問題は、mod_rewriteとapp modのいずれかがレンダリング時にリソースを消費するため、パフォーマンスのスピードを交換することです。 mod_rewriteを実装する方が簡単です。 – LordNeo

+0

コメントありがとうございます!私は中国人ユーザーにサービスを提供しなければならないので、CDNは設定するのがもう少し難しいです。中国政府は、すべてのウェブサイトが必要です、ドメイン名がある限り、あなたは "ICP"のライセンスを持っている必要があります。我々はそれを適用することができますが、タイミングだけが私たちの問題です。また、ICPを適用する必要がある中国法人もありません。例:https://www.amazonaws.cn/en/about-aws/china/ – user8369660

+0

さて、私の力はすべてあなたに行きます。私はまだmod_rewriteを提案します。これは簡単に実装することができます。あなたの "大きな資産"フォルダにそれを条件付けするだけで完了です。 – LordNeo

答えて

-1

あなたはまた、場合にあなたに有効な証明書を与える自由な計画を使用することができますCloudFlareのに試してみては、ここで、httpsを使用するための詳細情報をワン:

https://www.cloudflare.com/plans/

ことはまだ可能でない場合は、あなたはここで、詳細をnginxのキャッシュモジュールを使用して、独自の​​を作成しようとすることができます:

https://www.nginx.com/blog/nginx-caching-guide/

チェックあなたが複数のストレージサーバに余裕があれば

proxy_cache_path /path/to/hdd1 levels=1:2 keys_zone=my_cache_hdd1:10m 
       max_size=10g inactive=60m use_temp_path=off; 
proxy_cache_path /path/to/hdd2 levels=1:2 keys_zone=my_cache_hdd2:10m 
       max_size=10g inactive=60m use_temp_path=off; 

split_clients $request_uri $my_cache { 
       50%   "my_cache_hdd1"; 
       50%   "my_cache_hdd2"; 
} 

server { 
    # ... 
    location/{ 
     proxy_cache $my_cache; 
     proxy_pass http://my_upstream; 
    } 
} 
+0

それは本当に質問の "CDN"の要件に適合しません。 – ceejayoz

+0

@ceejayoz CDNタグを削除する必要がありますか?いずれにしても – nbari

+0

、さらに多くの情報を提供してくれてありがとう@nbari! – user8369660

関連する問題