Гайд по установке Bottle+virtualenv+uWSGI+Nginx на Ubuntu 12.04.1 LTS


Однажды, мне пришлось написать REST api для сайта, я выбрал Python + Bottle. мне было нужно настроить nginx + uwsgi для корректной работы bottlepy. В этом гайде я научу вас как это делать.

Это древо моего приложения:

/var/www/myapp Главная директория приложения
/var/www/myapp/env Virtualenv для приложения
/var/www/myapp/index.py Это главный скрипт со сценариями

Этапы которые мы должны совершить для настройки и установки нашего сервера:

  • Установка Uwsgi и nginx
sudo apt-get update
sudo apt-get install -y nginx uwsgi
sudo apt-get install uwsgi-plugin-python

  • Установить pip и python модули
sudo apt-get install python-pip

  • Установка virtualenv

sudo pip install virtualenv

  • Активируем наш Virtualenv:

sudo mkdir -p /var/www/myapp
sudo virtualenv /var/www/myapp/env
source /var/www/myapp/env/bin/activate
pip install bottle
deactivate
  • Теперь нужно поменять права доступа к файлам, чтоб мы могли их записывать и изменять

sudo chown -R www-data:www-data /var/www/myapp
Ок, теперь нам осталось настроить nginx сервер:

sudo gedit /etc/nginx/sites-enabled/default
Вот наш конфигурационный файл:
server {
 
     listen   80;
     charset utf-8;
     root /var/www/myapp;
     server_name localhost;
 
location / {
     include uwsgi_params;
     uwsgi_pass unix:/tmp/uwsgi.myapp.socket;
     uwsgi_param UWSGI_PYHOME /var/www/myapp/env;
     uwsgi_param UWSGI_CHIDIR /var/www/myapp;
     uwsgi_param UWSGI_SCRIPT index; # this should be the .py file name without suffix that your bottle will use to launch
     }
}
Теперь нужно отредактировать файл конфигурации uwgi:

sudo gedit /etc/uwsgi/apps-enabled/uwsgi.ini

[uwsgi]
plugins=python
socket=/tmp/uwsgi.myapp.socket
pythonpath=/var/www/myapp
Далее перезапустим nginx, и все будет работать :)

sudo service nginx restart
sudo service uwsgi restart

Комментарии

  1. Привет! Есть сайт c самописной CRM на php. Сейчас пытаюсь переписать его на flask. Также необходимо сделать к нему мобильное приложение. Выбор пал на Kivy. Порекомендовали сделать rest api и клиент для него на kivy. Можешь подсказать как это лучше реализовать? или есть лучше варианты?

    ОтветитьУдалить
    Ответы
    1. Насчет мобильного приложения, желательно его написать на Android Studio. А то Kivy очень громоздкий, и медленный. А rest api можно сделать на flask, либо cherry pi

      Удалить

Отправить комментарий

Популярные сообщения из этого блога

DOS атака при помощи Python

Ведем телеграм канал через питон

Django migrations не видит изменения моделей