2013-05-03 3 views
5

अधिकांश उपलब्ध ट्यूटोरियल दिखाते हैं कि अपस्ट्रीम HTTP सर्वर (जैसे एनजीआईएनएक्स) के साथ यूडब्ल्यूएसजीआई कैसे स्थापित करें। लेकिन uWSGI अकेले राउटर/प्रॉक्सी/लोड-बैलेंसर के रूप में खूबसूरती से कार्य कर सकता है - this देखें मेरे प्रोजेक्ट के लिए, मैं इस समय एनजीआईएनएक्स स्थापित नहीं करना चाहता था इसलिए मैंने यूडब्ल्यूएसजीआई के माध्यम से वेबपृष्ठों की सेवा करने के विकल्प की खोज शुरू कर दी। यहां जवाब दिखाता है कि इसे पिरामिड के साथ कैसे सेट अप करें।यूडब्ल्यूएसजीआई को पिरामिड (कोई एनजीआईएनएक्स) के साथ वेबसर्वर के रूप में सेट करें

उत्तर

10

मैं pyramid_mongodb मचान का उपयोग कर रहा हूं, जिसे मैंने इसे python3 पर काम करने के लिए संशोधित किया है। विवरण के लिए here देखें। मान लीजिए कि हमारे पास एक पिरामिड प्रोजेक्ट है (pcreate -s pyramid_mongodb MyProject के साथ बनाया गया)। यहाँ uWSGI विकास/production.ini

[uwsgi] 
http = 0.0.0.0:8080 
#http-to /tmp/uwsgi.sock - use this for standalone mode 
#socket = :9050 
master = true 

processes = 2 

harakiri = 60 
harakiri-verbose = true 
limit-post = 65536 
post-buffering = 8192 

daemonize = ./uwsgi.log 
pidfile = ./orange_uwsgi.pid 

listen = 128 

max-requests = 1000 

reload-on-as = 128 
reload-on-rss = 96 
no-orphans = true 

#logto= <log file> 
log-slow = true 

virtualenv = <path to virtual environment> 

#file = /path/to/pyramid.wsgi 
#callable = application 

need-app = true 

इसके अलावा में आवश्यक विन्यास कर रहे हैं क्योंकि हम uWSGI उपयोग कर रहे हैं हम आरं

#[server:main] 
#use = egg:waitress#main 
#host = 0.0.0.0 
#port = 6544 

से server भाग बाहर टिप्पणी कर सकते हैं सर्वर का उपयोग uwsgi --ini-paste development.ini

चलाने के लिए
2

अधिक आसान! सभी "development.ini" फ़ाइल में संशोधित करने की आवश्यकता नहीं है।

from pyramid.paster import get_app,setup_logging 

ini_path = '/pathto/myapp/development.ini' 
setup_logging(ini_path) 
application = get_app(ini_path,'main') 

बनाने के कहते हैं कि "myapp.conf" यह सामग्री दी गई है साथ करते हैं: जहां अपने "विकास" और "उत्पादन" INI फ़ाइलों रहते हैं, एक फ़ाइल में निम्न सामग्री के साथ "wsgi.app" कहा जाता है अनुप्रयोग फ़ोल्डर में बनाएं :

[uwsgi] 
socket = 127.0.0.1:3053 
uid = daemon 
gid = daemon 

venv = /pathto/myenv 
project_dir = /pathto/myapp 
chdir = %(project_dir) 
master = true 
plugins = plugins/python/python 

check-static = %(project_dir) 
static-skip-ext = .py 
static-skip-ext = .pyc 
static-skip-ext = .inc 
static-skip-ext = .tpl 

pidfile2 = /var/run/uwsgi/myinfo.pid 
disable-logging = true 
processes = 8 
cheaper = 2 

enable-threads = true 
offload-threads = N 
py-autoreload = 1 
wsgi-file = /pathto/myapp/wsgi.py 

और nginx configuation बहुत सरल है: के साथ

server { 
listen [xxxx:xxxx:xxxx:xxx:xxxx:xxxx]:80; #for IPv6 
listen xxx.xxx.xxx.xxx:80; #for IPv4 

server_name myapp.domain.com; 

location/{ 
    try_files $uri @uwsgi; 
} 

location @uwsgi { 
     include uwsgi_params; 
     uwsgi_pass 127.0.0.1:3053; 
    } 
} 
  1. पुनः आरंभ nginx "/ path/to/usr/sbin/nginx -s को फिर से लोड "
  2. uwsgi प्रक्रिया शुरू
  3. -> करने के लिए परिवर्तन" सीडी /usr/local/uwsgi-2.0.9 "-> ./uwsgi -ini /var/www/myapp.conf
+0

इस मामले में एनजीआईएनएक्स हिस्सा केवल (वैकल्पिक) है। लेकिन इस बिंदु पर आवेदन http://127.0.0.1:3053 पर अनुरोधों को सुनने में सक्षम होना चाहिए – SmileMZ

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