In an nginx conf file, is there any way to specify the include
to another conf file relative to the current conf file?
I would like to write:
server {
listen 80;
server_name localhost;
include "../apis/basic.conf";
...
}
Server Fault is a question and answer site for system and network administrators. It only takes a minute to sign up.
Sign up to join this communityThe Nginx docs for the include
directive don't document how relative paths are handled (as of release 1.9.15). My reading of the C code is that the path must be absolute or relative to the prefix path, as Alexey Ten offered in a comment.
Here's a related link to the source code.
-p
to .
and tried including ./nginx.conf
from a config file stored in /tmp
. It errors by telling me that it cannot find /tmp/./nginx.conf
. Either the -p
option doesn't do it, or inclusion only includes relative to the config file, or my nginx is broken.
Feb 8, 2017 at 13:26
-p
option only affects where nginx
command looks for the config file. Using nginx -p . -c ./nginx.conf
will make nginx command look for ./nginx.conf
, otherwise without it, it will lookup the prefix path for the ./nginx.conf
.
Feb 8, 2017 at 13:32
Similar to what Alexy Ten commented on above, the default prefix will be used. But according to this StackOverflow post: https://stackoverflow.com/a/25486871/1684819 the -p option can be provided to declare where all relative paths will be referenced to instead of the default compiled-in path.
include apis/basic.conf;
would probably just work. For example, this include is relative to the config root, so includes this file.