9

nginx(オリジン+エッジ)で少なくとも2台のサーバーをセットアップしようとしました。どちらもmp4モジュールでコンパイルされています。原点には、すべての mp4 ファイルが保持されます。Edge は、期待どおりに機能するすべてのキャッシング要素 (以下を参照) で構成され、2 回目の各 mp4 ファイル要求は、オリジン トラフィックなしでエッジ キャッシュによって処理されます。

しかし、ファイルをシークできるようにしたいです。この機能は mp4-module から来ています。query-param "?start=120" を追加するだけで、タイムスタンプ 120 秒で始まる mp4 コンテンツを提供するよう nginx に指示します。これは、オリジンが直接リクエストされた場合に正常に機能します。しかし、nginx の caching-location で mp4-module を有効にするとすぐに、リクエストは 404 になります。

nginx.conf @ オリジン:

server {
  listen       80;
  server_name  localhost;
  root         /usr/share/nginx/www;
  location ~ \.mp4$ {
    mp4;
    expires max;
  }
}

nginx.conf @ エッジ:

proxy_cache_path /usr/share/nginx/cache levels=2:2 keys_zone=icdn_cache:10m inactive=7d max_size=2g;
proxy_temp_path /usr/share/nginx/temp;
proxy_ignore_headers X-Accel-Expires Cache-Control Set-Cookie;
log_format cache '[$time_local] Cache: $upstream_cache_status $upstream_addr $upstream_response_time $status $bytes_sent $proxy_add_x_forwarded_for $request_uri';
access_log /usr/local/nginx/logs/cache.log cache;

upstream origin {
  server <origin-domain>;
}
server {
  listen       80;
  server_name  localhost;

  location ~ \.mp4$ {
    mp4;
    proxy_cache icdn_cache;
    proxy_pass http://origin;
    proxy_cache_key $uri;
  }
}

私も試しました:

location / {
  location ~ \.mp4$ { mp4; }
  proxy_cache icdn_cache;
  proxy_pass http://origin;
  proxy_cache_key $uri;
}

キャッシュされた mp4 ファイルを mp4-module の seek-function で動作させる方法はありますか?

4

2 に答える 2

0

proxy_cacheプロキシモジュールの一部です。現在、プロキシでnginx mp4モジュールを使用することはできません。静的ファイルに対してのみ機能します。それだけです。

于 2014-02-11T19:53:35.053 に答える
0

を使用する必要がありますproxy_store。リクエストproxy_cacheごとに多くのファイルが作成されます。?start=xxxx

mp4 モジュールがファイルをシークできるようにするには、完全なムービーが必要です。proxy_storeキャッシュサーバー上にミラーを作成します。

于 2012-05-23T15:29:16.390 に答える