Гайд по установке 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

Как исправить ошибку "Notreadableerror: could not start video source" в javascript

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