Используйте переменную окружения или параметр в nginx.conf - PullRequest
0 голосов
/ 03 апреля 2019

Я пытаюсь добавить proxy_pass в nginx.conf, например

location /example/ {
    proxy_pass   http://example.com;
}

Но вместо жесткого кодирования http://example.com в файле conf я хочу, чтобы это значение было в переменной окружения.

Как я могу использовать переменные окружения в nginx.conf?Или есть лучший способ с nginx не иметь внешней конфигурации?

1 Ответ

2 голосов
/ 03 апреля 2019

Если вы хотите, чтобы переменные окружения были чистыми в конфигурации nginx, вам понадобится реализовать некоторый код на языке Lua:

https://blog.doismellburning.co.uk/environment-variables-in-nginx-config/

Если у вас нет высокой нагрузки на этот NGinx,Я рекомендую реализовать это решение выше.

В моем конкретном случае, чтобы снизить нагрузку на процессор, я предпочитаю использовать отдельные файлы с переменными и скрипт в rc.local (или dockerfile) для изменения этих файлов, когда моя машина работаетlauching.

conf.d / instancele.conf

include backends/exemple.host;

location ~ ^/exemple {

    proxy_pass $exemple;
}

backends / instancele.host

set $exemple {BACKEND};

rc.local

sed -i "s@set \$checkout.*@set \$checkout $HOSTNAME\;@"  /etc/nginx/backends/exemple.host

Чтобы последнее решение работало, мне нужно изменить порядок запуска NGinx на ОС

...