schickling schickling - 22 days ago 13
Bash Question

nginx: use environment variables

I have the following scenario: I have an env variable

$SOME_IP
defined and want to use it in a nginx block. Referring to the nginx documentation I use the
env
directive in the
nginx.conf
file like the following:

user www-data;
worker_processes 4;
pid /run/nginx.pid;

env SOME_IP;


Now I want to use the variable for a
proxy_pass
. I tried it like the following:

location / {
proxy_pass http://$SOME_IP:8000;
}


But I end up with this error message:
nginx: [emerg] unknown "some_ip" variable

Answer

The correct usage would be $SOME_IP_from_env, but environment variables set from nginx.conf cannot be used in server, location or http blocks.

You can use environment variables if you use the openresty bundle, which includes Lua.