نحوه تنظیم Gunicorn برای خدمت به برنامه های وب پایتون

در این مقاله ، ما یک VPS را برای ارائه برنامه های وب Python با Gunicorn و Nginx به عنوان یک پروکسی معکوس تنظیم می کنیم. ما از Nginx به عنوان یک پروکسی معکوس به جای خدمت مستقیم با Gunicorn استفاده می کنیم تا از حملات DoS به Gunicorn جلوگیری کنیم. استفاده از Nginx همچنین منجر به عملکرد بهتر (بافر پروکسی) می شود و منجر به رسیدگی به درخواست های بیشتر می شود.

شروع شدن

این آموزش فرض می کند که شما در حال حاضر دارای VM با Ubuntu 14.04 یا جدیدتر نصب ، به روز شده و ایمن هستید.

  • نمونه Nginx ما روی پورت HTTP 80 اجرا خواهد شد (اما به راحتی می توانید به HTTPS ارتقا دهید).
  • برنامه پایتون مثال ما درگاه 8080 را گوش خواهد کرد. این پورت برای جلوگیری از دسترسی از راه دور روی iptables بسته خواهد شد.
  • این آموزش باید روی سایر دایرکتوری ها با حداقل تغییرات انجام شود.

نصب pip، virtualenv:

apt-get install python-pip python-virtualenv

بندر 8080 را ببندید. Gunicorn فقط توسط Nginx قابل دسترسی خواهد بود.

iptables -A INPUT -p tcp --destination-port 8080 -j DROP

یک پوشه جدید ایجاد کنید و برنامه ما را پیکربندی کنید. ما از چارچوب Flask استفاده خواهیم کرد.

mkdir /var/www-folder/
cd /var/www-folder/
virtualenv exampleapp
source exampleapp/bin/activate
cd exampleapp
pip install gunicorn
pip install flask

فایل برنامه را ایجاد کنید.

nano myapplication.py 

موارد زیر را داخل آن بچسبانید:

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, Vultr!'

این یک صفحه ساده تولید می کند که می گوید: "سلام ، ولتر!" وقتی شخصی به صفحه دسترسی پیدا می کند اکنون Gunicorn را شروع کنید. xبا 2 برابر تعداد هسته های CPU VM خود جایگزین کنید .

gunicorn -w x myapplication:app &

Nginx را نصب کنید و پروکسی معکوس را پیکربندی کنید.

deactivate
apt-get install nginx
nano /etc/nginx/sites-enabled/default

location / {خط را جستجو کرده و محتوای داخل براکت ها را با محتوای زیر جایگزین کنید.

proxy_set_header HOST $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:8000/;

این پیکربندی به Nginx دستور می دهد تا برخی از اطلاعات (پروتکل HTTP ، آدرس IP از راه دور) را به همراه درخواست واقعی به سرور Gunicorn ارسال کند. بارگیری مجدد Nginx

service nginx reload

در این مرحله ، برنامه Gunicorn به درستی پیکربندی شده است. با استفاده از یک مرورگر وب می توانید به آن دسترسی داشته باشید http://your-vps-ip/.



Leave a Comment

نحوه نصب بستر سبد خرید LiteCart در اوبونتو 16.04

نحوه نصب بستر سبد خرید LiteCart در اوبونتو 16.04

LiteCart یک بستر سبد خرید آزاد و منبع باز است که به زبان های PHP ، jQuery و HTML 5 نوشته شده است. این نرم افزار ساده ، سبک و با کاربرد آسان است.

نحوه نصب Anchor CMS بر روی یک VPS Fedora 26 LAMP

نحوه نصب Anchor CMS بر روی یک VPS Fedora 26 LAMP

با استفاده از یک سیستم متفاوت؟ Anchor CMS یک سیستم مدیریت محتوا (CMS) بسیار ساده و بسیار سبک ، بسیار آزاد و آزاد است.

اشتراک NFS را در Debian تنظیم کنید

اشتراک NFS را در Debian تنظیم کنید

NFS یک سیستم فایل مبتنی بر شبکه است که به رایانه ها اجازه می دهد تا از طریق شبکه رایانه ای به فایلها دسترسی پیدا کنند. این راهنما توضیح می دهد که چگونه می توانید پوشه ها را روی NF قرار دهید

نحوه بروزرسانی CentOS 7 ، Ubuntu 16.04 و Debian 8

نحوه بروزرسانی CentOS 7 ، Ubuntu 16.04 و Debian 8

هنگام راه اندازی سرور جدید لینوکس ، به روزرسانی سیستم های هسته و سایر بسته ها تا آخرین نسخه پایدار یک روش توصیه شده است. در این مقاله

نحوه نصب Matomo Analytics در Fedora 28

نحوه نصب Matomo Analytics در Fedora 28

با استفاده از یک سیستم متفاوت؟ Matomo (سابقا پیویک) یک بستر تحلیلی منبع باز است ، یک جایگزین باز برای Google Analytics. منبع Matomo میزبان o

یک سرور TeamTalk را در لینوکس تنظیم کنید

یک سرور TeamTalk را در لینوکس تنظیم کنید

TeamTalk یک سیستم کنفرانس است که به کاربران امکان می دهد مکالمات صوتی / تصویری با کیفیت بالا ، چت متنی ، انتقال فایل ها و صفحه های به اشتراک بگذارند. من

با استفاده از کلید SSH خود برای ورود به کاربران غیر ریشه استفاده کنید

با استفاده از کلید SSH خود برای ورود به کاربران غیر ریشه استفاده کنید

Vultr یک ویژگی را فراهم می کند که به شما امکان می دهد با ایجاد یک نمونه جدید ، کلیدهای SSH را از قبل نصب کنید. این اجازه می دهد تا به کاربر root دسترسی داشته باشید ، با این حال ، th

نحوه نصب انجمن NodeBB در FreeBSD 12

نحوه نصب انجمن NodeBB در FreeBSD 12

با استفاده از یک سیستم متفاوت؟ NodeBB یک نرم افزار انجمن مبتنی بر Node.js است. از سوکت های وب برای تعامل فوری و اعلامیه های زمان واقعی استفاده می کند. NodeB

نصب و راه اندازی ZNC در اوبونتو

نصب و راه اندازی ZNC در اوبونتو

ZNC یک پیشرانه پیشرفته شبکه IRC است که تمام وقت بهم متصل می شود تا مشتری IRC بتواند بدون از دست دادن جلسه گپ قطع یا وصل شود.

نحوه نصب Ranger Terminal File Manager در لینوکس

نحوه نصب Ranger Terminal File Manager در لینوکس

رنجر یک مدیر فایل مبتنی بر خط فرمان است که دارای کلیدهای اتصال VI است. این برنامه یک رابط لعنتی مینیمالیستی و زیبا با نمای سلسله مراتب فهرست ارائه می دهد