2011-12-03 10 views
12

मैं Nginx में नया हूं, मैंने सफलतापूर्वक अपने django प्रोजेक्ट को Nginx में बाध्य कर दिया है। हालांकि मैं अपनी स्थिर फाइलों की सेवा नहीं कर सकता और मुझे लगता है कि मैंने अपना मीडिया फ़ोल्डर का स्थान गलत तरीके से सेट किया है। यहाँ मेरी फ़ाइल का पेड़ है:nginx के माध्यम से django मीडिया फ़ाइलों को कैसे सेवा दें?

root_directory 
    my_django_project 
     ... 
     manage.py 
     app1 
     app2 
     media 
      admin 
      css 
      js 
      ... 

और मेरे nginx.conf प्रकार है:

 server { 
       listen 192.168.1.9:80; 
       server_name localhost; 
       # site_media - folder in uri for static files                         

      location /media/ { 
      root /home/nazmi/workspace/portal/media/;                      
       } 

location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|mov) { 
    access_log off; # po co mi logi obrazków :)                            
    expires  30d; 
} 
       location/{ 
         # host and port to fastcgi server                          
         fastcgi_pass 127.0.0.1:8080; 
      fastcgi_param PATH_INFO $fastcgi_script_name; 
         fastcgi_param REQUEST_METHOD $request_method; 
         fastcgi_param QUERY_STRING $query_string; 
         fastcgi_param CONTENT_TYPE $content_type; 
         fastcgi_param CONTENT_LENGTH $content_length; 
      fastcgi_pass_header Authorization; 
         fastcgi_intercept_errors off; 
         } 
       access_log  /var/log/nginx/localhost.access_log main; 
       error_log  /var/log/nginx/localhost.error_log; 
     } 
} 

जब मैं अपने व्यवस्थापक पृष्ठ खोलने के लिए, सभी सीएसएस पृष्ठों 404 त्रुटि दे। क्या आप मुझे बता सकते हैं कि मैं अपना मीडिया पथ सही तरीके से कैसे सेट कर सकता हूं?

उत्तर

31

यहाँ कैसे मैं अपने nginx सर्वर सेटअप

server { 
    server_name example.com www.example.com; 
    location /static { 
     autoindex on; 
     alias /home/myusername/myproject/static/; 
    } 
    location /media { 
     autoindex on; 
     alias /home/myusername/myproject/media/; 
    } 
    location/{ 
     proxy_pass http://127.0.0.1:8000; 
    } 
} 

मैं स्थानीय होस्ट पोर्ट 8000 पर Gunicorn साथ Django की सेवा का एक उदाहरण है

Nginx विकी example configuration मदद मिल सकती है (कि क्या proxy_pass के लिए है) आप भी। उनकी स्थिर फ़ाइल की सेवा में नोटिस वे अनुमत फ़ाइल प्रकार निर्दिष्ट करते हैं और 'उपनाम' के बजाय 'रूट' का उपयोग करते हैं लेकिन वे समान हैं।

यह ServerFault प्रश्न मदद कर सकता है।

+3

नए उपयोगकर्ताओं के लिए: बस'et /etc/nginx/mime.types 'जोड़ने के लिए मत भूलना; क्योंकि आपकी मीडिया फ़ाइलों को ब्राउज़र द्वारा अनदेखा कर दिया जाएगा यदि उन्हें' टेक्स्ट/सादा 'के डिफ़ॉल्ट माइमटाइप के साथ परोसा जाता है –

+0

मैं विभिन्न यूआरएल जैसे "media.example.com" द्वारा दायर मीडिया को सर्वर करना चाहता हूं। मैं उसे कैसे प्राप्त कर सकता हूं? – Kishan