У овом чланку ћемо подесити ВПС да служи Питхон веб апликацијама са Гуницорн и Нгинк-ом као обрнутим проксијем. Користимо Нгинк као обрнути прокси уместо да директно служимо са Гуницорн-ом да бисмо спречили ДоС нападе на Гуницорн. Коришћење Нгинк-а такође доводи до бољих перформанси (са баферовањем проксија) и резултира више обради захтева.
Почетак
Овај водич претпоставља да већ имате ВМ са инсталираним, ажурираним и обезбеђеним Убунту 14.04 или новијим.
- Наша Нгинк инстанца ће радити на ХТТП порту 80 (али можете лако надоградити на ХТТПС).
- Наш пример Питхон апликације ће слушати порт 8080. Овај порт ће бити затворен на иптаблес-у да би се спречио даљински приступ.
- Овај водич би требало да ради на другим дистрибуцијама са минималним променама.
Инсталирај pip, virtualenv:
apt-get install python-pip python-virtualenv
Затворите порт 8080. Гуницорн ће бити доступан само Нгинк-ом.
iptables -A INPUT -p tcp --destination-port 8080 -j DROP
Направите нову фасциклу и конфигуришите нашу апликацију. Користићемо Фласк фрамеворк.
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!'
Ово би произвело једноставну страницу са натписом "Здраво, Вултр!" када неко приступи страници. Сада покрените Гуницорн. Замените xса 2 пута већим бројем ЦПУ језгара вашег ВМ-а.
gunicorn -w x myapplication:app &
Инсталирајте Нгинк и конфигуришите обрнути прокси.
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/;
Ова конфигурација налаже Нгинк-у да проследи неке информације (ХТТП протокол, удаљена ИП адреса) заједно са стварним захтевом на Гуницорн сервер. Поново учитај Нгинк.
service nginx reload
У овом тренутку, ваша Гуницорн апликација је правилно конфигурисана. Можете му приступити помоћу веб претраживача на адреси http://your-vps-ip/.