Include additional files

Hi.

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?

Greetz

Joerg

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?

2013/4/25 motto [email protected]

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;

Posted at Nginx Forum:

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

http://wiki.nginx.org/HttpUpstreamModule#upstream

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.

Posted at Nginx Forum: