2012-04-05 9 views
8

के साथ मैंने कम से कम 2 सर्वर nginx (मूल + किनारे) के साथ सेट करने का प्रयास किया। दोनों mp4-मॉड्यूल के साथ संकलित। मूल में मेरी सभी एमपी 4 फाइलें हैं। एज को सभी कैशिंग-सामान (नीचे देखें) के साथ कॉन्फ़िगर किया गया है जो अपेक्षित कार्य करता है, प्रत्येक mp4-file अनुरोध दूसरी बार मूल ट्रैफ़िक के बिना किनारे-कैश द्वारा परोसा जाता है।वितरित और कैश एमपी 4 छद्म स्ट्रीमिंग (मांग) Nginx

लेकिन मैं फ़ाइल में तलाश करने में सक्षम होना चाहता हूं। कार्यक्षमता एमपी 4-मॉड्यूल से आता है। बस पूछे जाने वाले प्रश्न-पैरा "? Start = 120" nginx को टाइमस्टैम्प 120sec से शुरू होने वाली mp4-content की सेवा करने के लिए बताता है। यह सीधे अनुरोध के साथ ठीक काम करता है। लेकिन जैसे ही मैं nginx की कैशिंग-स्थान में mp4 मॉड्यूल सक्षम अनुरोध किया जाएगा 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 मॉड्यूल की मांग-समारोह के साथ काम करने के लिए कोई तरीका है?

उत्तर

0

आपको proxy_store का उपयोग करना होगा। proxy_cache प्रत्येक ?start=xxxx अनुरोध के लिए बहुत सी फाइलें बनाएगा।

फ़ाइलों में एक एमपी 4 मॉड्यूल की तलाश करने के लिए आपको पूरी फिल्म की आवश्यकता है। proxy_store कैश सर्वर पर दर्पण बना देगा।

+1

यह सच नहीं है, क्योंकि उपयोगकर्ता 'proxy_cache_key $ uri;' का उपयोग कर रहा है proxy_cache कुंजी के रूप में $ uri ($ request_uri के बजाय) का उपयोग करेगा, $ uri में क्वेरी पैरा शामिल नहीं हैं। यह वास्तव में एक समस्या का कारण बन सकता है, अगर पहले अनुरोध में है? Start = 120 और nginx फ़ाइल को पहले 120 सेकंड के साथ कैश करता है, लेकिन यह एक अलग मुद्दा है –

0

proxy_cache प्रॉक्सी मॉड्यूल का हिस्सा है। वर्तमान में आप प्रॉक्सी के साथ nginx mp4 मॉड्यूल का उपयोग नहीं कर सकते हैं, यह केवल स्थिर फ़ाइलों के लिए काम करता है, यही वह है।

संबंधित मुद्दे