uWSGI: условная конфигурация в uwsgi.ini: if-hostname и if-hostname-match - PullRequest
0 голосов
/ 08 мая 2020

Так же, как упражнение, вместо того, чтобы управлять отдельными файлами 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-файлами (со всеми общими конфигурациями в одном файле и лишь несколькими условно установленными различиями.

Это ошибка? Или я чего-то не понимаю?

...