Настройка сервера nginx+gunicorn/uwsgi+flask+proftpd
Нужно настроить сервер со следующими условиями:
— Доменов много. Каждый в своей папке по адресу /var/www/$domain
Будущая структура проектов:
- domain.com/ — корень проекта
- env/ — виртуальное окружение, создаваемое при помощи virtualenv
- dev/ — выдается по переходу на dev.domain.com
- src/ — папка с иходниками
- domain/ — корень исходников проекта
- static_content/ — папка для файлов, которые раздает nginx
- static/ — статические файлы проекта
- html/ — Статические страницы на случай отсутствия динамики
- media/ — media-файлы
- docs/
- logs/ — log-файлы сайта
- pids/ — тут pid-файлы
— Nginx — выдача статики и перенаправление динамики на gunicorn/uwsgi.
Необходимые настройки конфига:
— реврайт www
— подстройка под структуру папок приложений, описанную выше, то есть реврайт ссылок статики на /var/www/domain.com/static_content/static
— Учет ситуации, когда динамического приложения нету и необходимо выдавать статику. То есть по запросу domain.com выдается /var/www/domain.com/static_content/static/html/index.html
— Ошибки лежат в /var/www/domain.com/static_content/static/errors/
— Домен вида dev.domain.com перенаправлять на выдачу контента (динамика/статика) /var
— Gunicorn/uWSGi
Обработка и выдача динамики от python-приложений. Тут вопрос, что лучше поставить gunicorn vs uWSGi? Проекты небольшие, нагрузка средняя предполагается (около 10-15 проектов с нагрузкой по 200-1000 уников в день). Все сайты статика либо flask.
— Virtualenv для каждого проекта с конфигом пакетов (я подразумеваю build.sh c зависимостями requirements.conf)
Для зависимосте нужно прописать пакеты типа bower, sass и т.д., для полноценной работы клиентский приложений на flask
— ProFTPd
Для каждого домена свой юзер, залезающий в /var/www/domain.com/ + один общий юзер для /var/www
— Бэкапирование
Так же бэкапирование всего этого добра в dropbox (раз в день) и на локальный комп (раз в неделю) или как-то так.
Но самое главное, мне нужен список команд по настройке доменов.
Если предложите еще что-то, что поможет серверу адекватно работать, будет хорошо.
Интересует стоимость.