Так же, как упражнение, вместо того, чтобы управлять отдельными файлами uwsgi.ini для двух хостов, я подумал, обнаружив config logi c:
https://uwsgi-docs.readthedocs.io/en/latest/ConfigLogic.html
Хотя я мог бы попытаться сохранить только один с условным logi c. Но, похоже, это просто не работает. Документация на местах тонкая, и поиск в Интернете также не дает хороших примеров. В меру удивительно и разочаровывающе. Но оказалось, что есть два хороших параметра c с указанием имени хоста, не задокументированные на странице выше, в одном из которых даже есть пример!
https://uwsgi-docs.readthedocs.io/en/latest/Options.html#if -hostname
https://uwsgi-docs.readthedocs.io/en/latest/Changelog-2.0.12.html
Но вот что я нашел. Это работает в uwsgi.ini:
if-hostname = myhostname
uid = mychosenuid
virtualenv = myvenv
logto2 = mylogfile
endif =
, как и это:
if-hostname-match = ^myhostname
uid = mychosenuid
virtualenv = myvenv
logto2 = mylogfile
endif =
fantasti c. Я подумал.
Но вот так:
if-hostname = myhostname1
uid = mychosenuid1
virtualenv = myvenv1
logto2 = mylogfile1
endif =
if-hostname = myhostname
uid = mychosenuid
virtualenv = myvenv
logto2 = mylogfile
endif =
Тогда uwsgi не запустится на myhostname1, жалуясь, что mychosenuid1 не существует! Я получаю тот же результат при использовании if-hostname-match.
Что поднимает вопрос об отладке и опциях вывода. Есть ли опция конфигурации, которая выводит информацию о журнале? Например:
if-hostname = myhostname1
log "Using config for myhostname1"
uid = mychosenuid1
virtualenv = myvenv1
logto2 = mylogfile1
endif =
if-hostname = myhostname
log "Using config for myhostname"
uid = mychosenuid
virtualenv = myvenv
logto2 = mylogfile
endif =
Чтобы я мог видеть в файле журнала, удалось ли совпадение?
Это ни в коем случае не кризис, я просто буду управлять двумя отдельными ini-файлами. Но это (плохо) задокументированная функция, которая, если бы она работала, могла бы немного упростить управление ini-файлами (со всеми общими конфигурациями в одном файле и лишь несколькими условно установленными различиями.
Это ошибка? Или я чего-то не понимаю?