Оглавление

uWSGI собирается не сложно, но немного нестандартно. Кроме того, этот инструмент имеет огромное количество различных возможностей, большая часть которых рассчитаны на промышленные кластерные и облачные решения, хостинги, множество языков разработки… Всё это здорово, но совершенно не нужно на маленьком VDS, где наоборот важна память.

В последних версиях uWSGI со сборкой стало получше, есть множество готовых компактных конфигураций, но того, что нужно мне ещё не появилось. Всем не угодишь. Поэтому придётся чуть-чуть поколдовать.

Сборка uWSGI в конфигурации Django+CGI

Получаем и раззиповываем исходники:

UWSGI_VERSION='1.9.20'
wget -nc "http://projects.unbit.it/downloads/uwsgi-$UWSGI_VERSION.tar.gz"
tar xzf "uwsgi-$UWSGI_VERSION.tar.gz"
cd "uwsgi-$UWSGI_VERSION"

Теперь как раз магия: создаём файл конфигурации для сборки:

cat << EOF > buildconf/_my.ini
[uwsgi]
main_plugin = python,cgi
inherit = minimal
EOF

Тут всего три строчки. Как видите, мы отнаследовались от минимальной конфигурации и включили два плагина: python и cgi.

Теперь собираем.

export LDFLAGS="-L$PREFIX/lib -Wl,-rpath,$PREFIX/lib -lssl -lcrypto -ldl -lz"
export CPPFLAGS="-I $PREFIX/include"
"$PREFIX/bin/python" uwsgiconfig.py --build _my

Я устанавливаю переменные LDFLAGS и CPPFLAGS потому, что использую часть библиотек так же самосборного приготовления. Если вы собираетесь с системными библиотеками, то вам нужна только последняя строка (с системным питоном).

После сборки у вас появится бинарник uwsgi, который вы можете положить самостоятельно, куда хотите.

Переходим к настройке.