UNGSGI

2012-07-30 3 views
5

के साथ Nginx के साथ कई Django साइटों की सेवा करना मैं Nginx का उपयोग कर दो Django साइटों की सेवा करने की कोशिश कर रहा हूं।UNGSGI

मैं या तो एक कोई समस्या नहीं सेवा कर सकते हैं, लेकिन यह एक साइट के लिए दोनों यूआरएल भेजता है, तो मैं दोनों को सक्रिय करें। यह मेरी पहली बार Nginx का उपयोग कर रहा है, मैं आमतौर पर अपाचे का उपयोग करता हूं इसलिए मेरे साथ भालू।

मैं साइटों में दो साइटों मिल गया है सक्षम है कि इस तरह दिखेगा:

site1.com:

server{ 
    server_name www.site1.com; 
    listen 69.164.211.85:80; 
    access_log /var/www/site1.env/logs/access.log; 
    error_log /var/www/site1.env/logs/error.log; 

    location /static/ { 
      # Point this wherever the static files for your django app are $ 
      autoindex on; 
      alias /var/www/site1.env/Site1/static/; 
    } 

    location/{ 
     uwsgi_pass 127.0.0.1:3031; 
     include  uwsgi_params; 
     uwsgi_param UWSGI_APPID site1; 
     uwsgi_param UWSGI-FILE /var/www/site1.env/Site1/wsgi/site1_wsgi.py; 
    } 
} 

site2.net

server{ 
     server_name www.site2.net; 
     listen 69.164.211.85:80; 
     access_log /var/www/site2.env/logs/access.log; 
     error_log /var/www/site2.env/logs/error.log; 

     location /static/ { 
       # Point this wherever the static files for your django app are $ 
       autoindex on; 
       alias /var/www/site2.env/Site2/static/; 
     } 

     location/{ 
      uwsgi_pass 127.0.0.1:3032; 
      include  uwsgi_params; 
      uwsgi_param UWSGI_APPID site2; 
      uwsgi_param UWSGI-FILE /var/www/site2.env/Site2/wsgi/site2.py; 
     } 

} 

मैं भी दो उदाहरणों चल रहा हूँ

साइट 1: UWSGI जो इस स्क्रिप्ट के साथ आरंभ करने के

description "uWSGI server" 

start on runlevel [2345] 
stop on runlevel [!2345] 

respawn 
exec /usr/local/bin/uwsgi \ 
--home /var/www/site1.env/Site1/ \ 
--socket 127.0.0.1:3031 \ 
--chmod-socket \ 
--module site1_wsgi \ 
--pythonpath /var/www/site1.env/Site1/wsgi \ 
-H /var/www/site1.env 

साइट 2:

description "uWSGI server" 

start on runlevel [2345] 
stop on runlevel [!2345] 

respawn 
exec /usr/local/bin/uwsgi \ 
--home /var/www/site2.env/Site2/ \ 
--socket 127.0.0.1:3032 \ 
--chmod-socket \ 
--module site2 \ 
--pythonpath /var/www/site2.env/Site2/wsgi \ 
-H /var/www/sit2.env 

यह वही मेरी nginx.conf फ़ाइल लग रहा है की तरह है:

user www-data; 
worker_processes 4; 
pid /var/run/nginx.pid; 

events { 
     worker_connections 768; 
     # multi_accept on; 
} 

http { 

    ## 
    # Basic Settings 
    ## 

    sendfile on; 
    tcp_nopush on; 
    tcp_nodelay on; 
    keepalive_timeout 65; 
    types_hash_max_size 2048; 
    # server_tokens off; 

    # server_names_hash_bucket_size 64; 
    # server_name_in_redirect off; 

    include /etc/nginx/mime.types; 
    default_type application/octet-stream; 

    ## 
    # Logging Settings 
    ## 

    access_log /var/log/nginx/access.log; 
    error_log /var/log/nginx/error.log; 

    ## 
    # Gzip Settings 
    ## 

    gzip on; 
    gzip_disable "msie6"; 

    # gzip_vary on; 
    # gzip_proxied any; 
    # gzip_comp_level 6; 
    # gzip_buffers 16 8k; 
    # gzip_http_version 1.1; 
    # gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/$ 

    ## 
    # Virtual Host Configs 
    ## 

    include /etc/nginx/conf.d/*.conf; 
    include /etc/nginx/sites-enabled/*; 
} 

    ## 
# Logging Settings 
    ## 
    access_log /var/log/nginx/access.log; 
    error_log /var/log/nginx/error.log; 

    ## 
    # Gzip Settings 
    ## 

    gzip on; 
    gzip_disable "msie6"; 

    # gzip_vary on; 
    # gzip_proxied any; 
    # gzip_comp_level 6; 
    # gzip_buffers 16 8k; 
    # gzip_http_version 1.1; 
    # gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/$ 

    ## 
    # Virtual Host Configs 
    ## 

    include /etc/nginx/conf.d/*.conf; 
    include /etc/nginx/sites-enabled/*; 
} 

मैं अलग बंदरगाहों के लिए स्थापित किया जा रहा uwsgi_pass सोचा होगा उन्हें करने के लिए जा रोका जा सके वही एक लेकिन स्पष्ट रूप से मैं कुछ और याद कर रहा हूँ। मैं किसी भी मदद की सराहना करता हूं, धन्यवाद!

उत्तर

3

आह, ऐसा इसलिए हो सकता है क्योंकि मैंने www के बिना सर्वर नाम शामिल नहीं किए थे। जब मैं ऐसा करता हूं तो ऐसा लगता है।

+0

मुझे आश्चर्य है कि यदि आप ऊपर दिए गए सेटअप के साथ 'www.' के बिना कॉल करते हैं तो अनुरोधों को क्या संभालता है? क्या आपके पास डिफ़ॉल्ट 'सर्वर {server_name _ है; } परिभाषा? – Tisho

+1

@Tisho नहीं मैंने नहीं किया, मैं डिफ़ॉल्ट अक्षम कर दूंगा। मुझे लगता है कि यह इसे पहले सक्रिय करने वाले व्यक्ति को भेज रहा था। – DNN

1

nginx config मुझे ठीक लगता है। मैंने एक ही कोड (दो बंदरगाहों को इंगित करने वाली दो अलग-अलग साइटों) के साथ एक परीक्षण किया है, और बंदरगाहों पर श्रोता शुरू किया - और प्रत्येक साइट निर्दिष्ट पोर्ट पर जाती है।

मैं uwsgi config पर कुछ संदेह है, और विशेष रूप से पर्यावरण/पथ सेटिंग्स के लिए और अधिक। निम्नलिखित का प्रयास करें - एक uwsgi1.conf फ़ाइल बनाते हैं, और पेस्ट वहाँ निम्नलिखित:

[uwsgi] 
socket = 127.0.0.1:3031 
master = true 
processes = 8 
env = DJANGO_SETTINGS_MODULE=site1.settings 
chdir = /var/www/site1.env/Site1/ 
pythonpath = /var/www/site1.env/ 
module = django.core.handlers.wsgi:WSGIHandler() 
-H /var/www/site1.env 

और एक दूसरे uwsgi2.conf निम्नलिखित सामग्री के साथ:

[uwsgi] 
socket = 127.0.0.1:3032 
master = true 
processes = 8 
env = DJANGO_SETTINGS_MODULE=site2.settings 
chdir = /var/www/site2.env/Site2/ 
pythonpath = /var/www/site2.env/ 
module = django.core.handlers.wsgi:WSGIHandler() 
-H /var/www/site2.env 

और fror env /, chdir, PYTHONPATH मूल्यों को बदल अगर जरुरत हो। फिर साइट्स को शुरू करें:

respawn 
exec /usr/local/bin/uwsgi --ini /path/to/uwsgi1.conf 

और uwsgi2.conf दूसरे के लिए।

+0

मैंने अभी यह किया है और मुझे अभी भी एक ही समस्या मिल रही है। क्या कोई और चीज है जो मुझे याद आ रही है? – DNN