Im trying to setup a loadbalancing system. My load balancer (nginx) has a conf file where i should list all IP's of the upstream servers.

I could put the IP's on the conf manually, but this ways i would need to change the conf file every time i add/remove an upstream server.

For now i came up with two different ideas, but i don't like much of neither:

1 - Have every upstream machine to use Exported Resources to create a file with it's IP..Then the load balancer server will have an "include conf_directory/*", and load all the files created by the upstrem servers. Since the load balancer is using nginx this can be done, but if i wan't latter on to configure something that doesn't have the "include" on the conf files, this solution will not work.

2 - If the config doesn't support the "include" command, then we could have again, every upstream server use the Exported Resources to create a filw with its IP, and latter on, the load balancer execute a command that would pick every file and generate the config

Both versions addopt the same techinque, the difference is that version 2 is used when the server (that needs to have a conf generated) doesn't recognize a command like "include" inside its own conf.

Now, my question is, is there any way to do this in a different form? I suspect that there is, since puppet is made to manage multiple servers, it seems a bit strange not have a easy way to configure load balancers.

EDIT: After all, the 1st solution doens't work also, because i can't use the include directive inside the upstream on the nginx conf

link|improve this question
feedback

1 Answer

up vote 0 down vote accepted

Use R.I.Pienaar's concat module. With this you can export/collect configuration file snippets and concatenate them on the target into a single file.

link|improve this answer
This helps me implement the solution 2. I was looking for other kinds of approach, but for now, this is the one. Thank you David. – Gonçalo Queirós May 26 '10 at 18:15
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.