<div dir="ltr"><div>Hello, Peter.<br></div><div><br></div><div>In the company where I work the file nginx.conf is bigger than 1 MB. Por each virtual server, there are lots of definitions that are almost equal. If I where the one who had to decide the file structure, I problably choose to use a different file for each virtual host, so when we have to create a new one, I just use a perl script to create the new one using some substitutions in one of the existing ones. So it is easy for my to watch the differences using a program like <i>meld</i> (or <i>tkdiff</i>, <i>kompare </i>or similar)<br><br></div><div>There is a diffent approach, that is the inverse process: i've created a script that splits the whole nginx.conf file to create an individual file for each virtual host, and then I can compare a virtual host with another one using meld in a easy way. Then I delete all the individual temporal files.<br><br></div><div>I think than having small files is less error-prone...<br></div><div><br></div><div>Kind regards,<br></div><div>Oscar<br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Jun 4, 2017 at 2:58 PM, Peter Booth <span dir="ltr"><<a href="mailto:peter_booth@me.com" target="_blank">peter_booth@me.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">FWIWI have never understood the desire to have nginx configuration spread across multiple files.<br>
It just seems to invite error and make it harder to see what is going on.<br>
<br>
Perhaps if I worked for a hosting company I’d feel differently but on the sites that I have worked on,<br>
even with quite complicated, subtle caching logic the entire nginx.conf has been under 600 lines - not<br>
that different from a default Apache httpd.conf but with all configuration not 90% comments<br>
<div class="HOEnZb"><div class="h5"><br>
<br>
> On 4 Jun 2017, at 7:41 AM, Reinis Rozitis <<a href="mailto:r@roze.lv">r@roze.lv</a>> wrote:<br>
><br>
>> That can't be right, because before I used the multiple location directives, I<br>
>> didn't have http and it worked fine. Regardless, I followed your advice and I got<br>
>> the following now:<br>
><br>
> As people have already pointed you probably have something like main config nginx.conf  with:<br>
><br>
> http {<br>
> ..<br>
> include sites-enabled/*;<br>
> ..<br>
> }<br>
><br>
> where each separate config file indeed doesn't need an extra http {} but the different server{} blocks still end up being within a (single) http {}.<br>
><br>
><br>
>> nginx: [emerg] "http" directive is not allowed here in<br>
>> /usr/local/nginx/conf/sites-<wbr>enabled/ server.domain.tld -ssl:1<br>
><br>
> Nginx includes/parses the files in the order they appear in the directory (sites-enabled/) - as it was stated you might try to check if the server file before " server.domain.tld -ssl" has a correct configuration (all the braces {} are closed etc).<br>
><br>
> rr<br>
><br>
> ______________________________<wbr>_________________<br>
> nginx mailing list<br>
> <a href="mailto:nginx@nginx.org">nginx@nginx.org</a><br>
> <a href="http://mailman.nginx.org/mailman/listinfo/nginx" rel="noreferrer" target="_blank">http://mailman.nginx.org/<wbr>mailman/listinfo/nginx</a><br>
<br>
______________________________<wbr>_________________<br>
nginx mailing list<br>
<a href="mailto:nginx@nginx.org">nginx@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx" rel="noreferrer" target="_blank">http://mailman.nginx.org/<wbr>mailman/listinfo/nginx</a></div></div></blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">Oscar Fernandez Sierra<br><a href="mailto:oscaretu@gmail.com" target="_blank">oscaretu@gmail.com</a></div>
</div>