我尝试在nginx.conf中添加一个proxy_pass
location /example/ {
proxy_pass http://example.com;
}
但我不想在conf文件中进行硬编码http://example.com,而是希望在环境变量中使用此值。
如何在nginx.conf中使用环境变量?还是nginx有更好的方法没有外部配置?
答案 0 :(得分:1)
如果要将纯环境变量放入nginx配置,则需要使用Lua语言实现一些代码:
https://blog.doismellburning.co.uk/environment-variables-in-nginx-config/
如果您对此NGinx的负载不高,我建议实施上述解决方案。
在我的特定情况下,为了减少CPU负载,我更喜欢在机器启动时使用带有变量的分隔文件和rc.local
(或dockerfile)中的脚本来更改这些文件。
conf.d / exemple.conf
include backends/exemple.host;
location ~ ^/exemple {
proxy_pass $exemple;
}
后端/示例主机
set $exemple {BACKEND};
rc.local
sed -i "s@set \$checkout.*@set \$checkout $HOSTNAME\;@" /etc/nginx/backends/exemple.host
要使最后一个解决方案有效,我需要在操作系统上更改NGinx的启动顺序。