2013-10-22 5 views
13

मुझे अपनी स्थिर फाइलों को कैश करने के लिए नियम को परिभाषित करने में कुछ परेशानी हो रही है। मुझे यह समाधान मिला है:एनजीआईएनएक्स कैश स्थैतिक फाइलें

location ~* \.(ico|js|css|png|gif|jpe?g)$ { 
    expires 7d; 
} 

जो वास्तव में मुझे चाहिए की तरह दिखता है। समस्या यह है कि, यदि मैं इस कोड को NGINX.conf में शामिल करता हूं, तो अब कोई स्थिर फाइलें वितरित नहीं की जाती हैं और मेरी साइट खाली है। कोई भी विचार/संकेत जो इस परिणाम का कारण बन सकता है? शायद मुझे जोड़ना है, कि स्थिर फाइलें विभिन्न निर्देशिकाओं में वितरित की जाती हैं: /। मेरे nginx कॉन्फ़िग फ़ाइल इस तरह दिखता है:

server { 
    server_name    bla.domain.com; 

    listen     80; 
    root      /var/repo/; 

    location/{ 
    default_type   text/html; 
    index     index.html; 

    if ($request_method !~ ^(GET)$) { 
     return 444; 
    } 

    if ($http_user_agent ~* LWP::Simple|BBBike|wget) { 
     return 403; 
    } 

    if ($http_referer ~* (babes|forsale|girl|jewelry|love|nudit|organic|poker|porn|sex|teen)) { 
     return 403; 
    } 
    } 

    location /bf/football/ { 
    alias /var/repos/f20; 
    } 

    location /bf/f20/ { 
    alias /var/repo/f20; 
    } 

    location /bf/zoo/ { 
    alias /var/repo/zoo/; 
    } 

    location /kbloader/ { 
    alias /var/repo/kbloader/; 
    } 
} 

अच्छा अगर किसी को इस के साथ मेरी मदद या सही दिशा में मुझे बिंदु सकता होगा।

चीयर्स, Szop

+0

आप आप पूरा विन्यास पोस्ट देंगे? – alfredocambera

उत्तर

28

इस डाल अपने अन्य स्थान से पहले:

location ~* \.(?:ico|css|js|gif|jpe?g|png)$ { 
     expires 30d; 
     add_header Vary Accept-Encoding; 
       access_log off; 
    } 

यही काम करना चाहिए।

इस इस्तेमाल कर सकते हैं:

## All static files will be served directly. 
    location ~* ^.+\.(?:css|cur|js|jpe?g|gif|htc|ico|png|html|xml|otf|ttf|eot|woff|svg)$ { 

     access_log off; 
     expires 30d; 
     ## No need to bleed constant updates. Send the all shebang in one 
     ## fell swoop. 
     tcp_nodelay off; 
     ## Set the OS file cache. 
     open_file_cache max=3000 inactive=120s; 
     open_file_cache_valid 45s; 
     open_file_cache_min_uses 2; 
     open_file_cache_errors off; 
    } 
+1

इस उदाहरण में कैश को कैसे साफ़ किया जाएगा? क्या यह nginx को पुनरारंभ करने जितना आसान होगा? – hamstar

+2

यह उदाहरण सर्वर साइड कैश नहीं है, यह ब्राउज़र कैश का प्रबंधन करता है। यदि हम सर्वर पर स्थिर फ़ाइल को अपडेट करते हैं, तो क्या आप क्लाइंट के लिए तुरंत नई फाइल अपडेट करेंगे या इसे समाप्त होने तक इंतजार करना होगा, तो आप Shift + F5/ctrl + F5 –

+0

के साथ पुनः लोड करके ब्राउज़र कैश साफ़ कर सकते हैं? – nXqd

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