uWSGI یک نرمافزار کاربردی پر سرعت کد نویسی شده با زبان سی(C)، با هدف توسعه full stack برای ساختمان خدمات میزبانی می باشد، که پس از وب سرور رابط دروازه(WSGI) که اولین افزونههای پشتیبانی شده توسط این پروژه است.
uWSGI اغلب برای ارتباط بین برنامه کاربردی وب پایتون با وب سرورهایی مانند چروکی و Nginx استفاده میشود.
پیش نیازهای uWSGI:
ویکی uWSGI چندین روش نصب را شرح می دهد. با استفاده از پیپ(pip) ، مدیر بسته پایتون ، می توانید هر نسخه uWSGI را با یک فرمان واحد نصب کنید. بعنوان مثال ما در اینجا 2روش نصب را آوردیم:
# Install current stable version. $ pip install uwsgi # Or install LTS (long term support). $ pip install https://projects.unbit.it/downloads/uwsgi-lts.tar.gz
مدل uWSGI:
uWSGI بر روی مدل کلاینت-سرور کار می کند. سرور وب شما (به عنوان مثال nginx یا Apache) برای ارائه محتوای پویا با یک فرآیند "worker" با django-uwsgi ارتباط برقرار می کند.
پیکربندی و راه اندازی سرور uWSGI برای جنگو:
uWSGI از روشهای مختلفی برای پیکربندی پشتیبانی می کند. برای مطالعه بیشتر اسناد پیکربندی uWSGI را ببینید.
برای شروع ما روش زیر برای پیکربندی سرور uWSGI تشریح می کنیم:
uwsgi --chdir=/path/to/your/project \ --module=mysite.wsgi:application \ --env DJANGO_SETTINGS_MODULE=mysite.settings \ --master --pidfile=/tmp/project-master.pid \ --socket=127.0.0.1:49152 \ --processes=5 \ --uid=1000 --gid=2000 \ --harakiri=20 \ --max-requests=5000 \ --vacuum \ --home=/path/to/virtual/env \ --daemonize=/var/log/uwsgi/yourproject.log
برفرض شما یک پروژه سطح بالا با نام mysite دارید که درون آن یک فایل به اسم wsgi.py در مسیر (mysite/wsgi.py) حاوی یک شی از برنامه WSGI می باشد. این طرحی است که شما با اجرای دستور زیر ایجاد می شود:
$ django-admin startproject mysite
توجه: بجای mysite می توانید از نام پروژه خود استفاده کنید.
در صورتی که فایل wsgi.py وجود نداشته باشد، باید آن را بصورت دستی ایجاد کنید و با مطالعه اسناد توسعه WSGI محتوای پیش فرض را به آن اضافه کنید.
گزینه های ویژه جنگو در اینجا عبارتند از:
chdir: آدرس دایرکتوری که باید در مسیر ایمپورت پایتون باشد – بعنوان مثال: دایرکتوری حاوی پکیج mysqite
module: ماژول WSGI برای استفاده - ماژول mysite.wsgi که startproject ایجاد می کند.
env: باید شامل فایل تنظیمات پروژه جنگو DJANGO_SETTINGS_MODULE باشد.
home: یک مسیر اختیاری به virtualenv پروژه شما.
یک نمونه از فایل پیکربندی بصورت ini:
[uwsgi] chdir=/path/to/your/project module=mysite.wsgi:application master=True pidfile=/tmp/project-master.pid vacuum=True max-requests=5000 daemonize=/var/log/uwsgi/yourproject.log
برای استفاده از فایل پیکربندی کافیست کد زیر را اجرا کنید:
uwsgi --ini uwsgi.ini
برگرفته و ترجمه شده از اینجا