I have some trouble cleaning up my /etc/nginx/nginx.conf. I have several
upstream and server blocks in this file and it becomes a mess. So I
tried
to write each configuration in a seperate file saved in
/etc/nginx/conf.d/loki.conf for example and include them in nginx.conf.
I include the file with the following entry in nginx.conf:
include /etc/nginx/conf.d/loki.conf;
But when reloading/restarting nginx I get the following error:
[emerg] 15941#0: duplicate upstream “loadbalancer” in
/etc/nginx/conf.d/loki.conf:1
I looked around in the Wiki but find no hint.
How can I store my configruations in seperate files and include them?
Ok. So the upstream block has to be in the nginx.conf. I thought I could
this one export to a separate file, too.
I was wondering why I still got the error message after I deleted the
upstream block in nginx.conf and had it only in my included file. So the
upstream configuration must be in nginx.conf?
upstream name should be unique per entire config, you could name it in
nginx.conf and than reference to its name from different your includes.
like:
upstream loadbalancer {
server 192.168.0.1:8080;
server 192.168.0.2:8080;
server 192.168.0.3:8080;
server 192.168.0.4:8080;
}
than in certain location (in included file for example)
proxy_pass http://loadbalancer;
Ok. So the upstream block has to be in the nginx.conf. I thought I
could
this one export to a separate file, too.
yes, you can (include your upstream-config and any other part).
you just need to place it into the right context, e.g. inside
a http { … } - block and not inside a server { … } - block
I was wondering why I still got the error message after I deleted the
upstream block in nginx.conf and had it only in my included file. So
the
upstream configuration must be in nginx.conf?
every upstream-config for each of your server-parts gets a unique
name,
what does $ grep -Rn “loadbalancer” /etc/nginx/*
gives you back? might be just a typo.