Конфигурация uwsgi.ini для приложений Python

В первую очередь, профилирование Вашего php-приложения для наблюдения, где узкие места. Я Вы знаете узкие места, Вы знаете, где кэшироваться и что оптимизировать.

Можно представить Вас приложение с xdebug (http://www.xdebug.org/) или Studio Зенда (http://www.zend.com)

6
задан 26 July 2012 в 13:51
3 ответа

Я сам нашел ответ, немного покопавшись в документации uwsgi.

Ссылка, https: // uwsgi-docs. readthedocs.io/en/latest/ConfigLogic.html, мы можем указать логику конфигурации и динамически вычислять пути, используя переменные среды в python virtualenv.

Итак, предполагая, что я сейчас нахожусь в моем myproject virtualenv, моя конфигурация .ini автоматически вычислит мои пути для chdir и virtualenv .ini параметры конфигурации, такие как:

[uwsgi]

if-env = PROJECT_HOME
print = Your path is %(_)/myproject
chdir = %(_)/myproject
endif =

if-env = VIRTUAL_ENV
print = Your virtualenv is %(_)
virtualenv = %(_)
endif = 

socket=127.0.0.1:3034
module=django.core.handlers.wsgi:WSGIHandler()
env= DJANGO_SETTINGS_MODULE=bbox.settings
master=True
pidfile=/tmp/project-master.pid
vacuum=True
max-requests=5000
daemonize=/var/log/uwsgi/yourproject.log

Оператор печати, конечно, необязателен, но это дает двоичному файлу uwsgi ожидаемые значения для chdir и virtualenv .

Примерно так:

calvin$ uwsgi --ini myproject/uwsgi.ini 
[uWSGI] getting INI configuration from myproject/uwsgi.ini
Your path is /Users/calvin/work/myproject
Your virtualenv is /Users/calvin/.virtualenvs/myproject
*** Starting uWSGI 1.2.4 (64bit) on [Thu Jul 26 17:00:04 2012] ***
compiled with version: 4.2.1 Compatible Apple Clang 3.1 (tags/Apple/clang-318.0.61) on 25 July 2012 20:06:56
detected number of CPU cores: 8

Операторы печати не нужны в вашем окончательном файле .ini конечно. Я просто помещаю их туда, чтобы распечатать необходимую информацию, подтверждающую, что мои пути динамически вычисляются в файле .ini.

9
ответ дан 3 December 2019 в 00:16

Я не уверен, что запускать разрабатываемые и производственные версии с разными файлами конфигурации - хорошая практика -обычно это способ «странных» проблем, которые не появляются в версии для разработчиков (из-за различных прав доступа к файлам или чего-то еще). Намного лучше сделать что-то вроде make install и всегда работать с производственной конфигурацией. Или вы можете просто связать свои источники с каталогом проекта в вашем домашнем каталоге, чтобы редактировать их на месте. Но опять же, ваша конфигурация уникальна.

0
ответ дан 3 December 2019 в 00:16

Основываясь на ответе Кальвина, с использованием «@» magic может иметь больше гибкости в отношении динамических конфигураций.

(скрытый) может быть полезен, например, для оценки команд bash. В моем случае это позволило мне определить: realpath = @ (exec: // bash -c 'dirname `readlink -f% p`') Который я искал, поскольку сделал символическую ссылку на эту конфигурацию из другого каталога.

1
ответ дан 3 December 2019 в 00:16

Теги

Похожие вопросы