Mehrere includes in nginx server config?

  • einen schönen sonntag!

    ich habe einen nginx-server auf dm pi installiert und es funktioniert eigentlich ganz gut.

    ich habe mehrere server-config-dateien in /etc/nginx/sites-available. alles das an code was in mehreren dateien zu finden war, habe ich in eine eigene datei gepackt und diese füge ich per include in die config-files ein.

    das klappt auch, WENN DENN nur ein include vorhanden ist. wenn ich zwei includes mache, wird die zweite datei nicht inkludiert. woran kann das liegen?

  • Moin,

    erst einmal /etc/nginx/sites-available, da packst Du alles rein was an vhosts vorhanden sein soll.
    Diese linkst Du aber nach /etc/nginx/sites-enabled, so das Du die Configs liegen lassen kannst und schnell auch mal aktivieren bzw. deaktivieren kannst.

    In der Config mit der Server directive in /etc/nginx/sites-available|/etc/nginx/sites-enabled kannst Du dann weitere Files includieren.

    Das was Du aber includierst legst Du nicht in /etc/nginx/sites-available|enabled, sondern wo anders hin.

    Wenn Du Deine ganzen Domains z.B: in /var/www ablegst machst Du ein Verzeichnis pro Domain und da drin dann httpdocs und conf.
    /var/www/http://domain.de/{httpdocs,conf}

    In httpdocs kommen dann die HTML, PHP, Perl, usw Files.
    In conf dann die Configfiels die per include werden geladen werden sollen.
    /var/www/http://domain.de/conf/rewrite.conf
    /var/www/http://domain.de/conf/perl.conf
    /var/www/http://domain.de/conf/php-fpm.conf
    /var/www/http://domain.de/conf/owncloud.conf
    /var/www/http://domain.de/conf/subdomains.conf
    usw. und so ähnlich.

    Das wird dann in der /etc/nginx/sites-enabled/domain.de.conf mit Include eingefügt.

    Wenn es an bestimmten Stellen sein muss geziehlt an den passenden stellen, z.B. in Location Bereichen,

    Code
    ...
    include /var/www/domain.de/conf/rewrite.conf;
    ...
    include /var/www/domain.de/conf/perl.conf;


    Oder generell wenn es für alles in der Config für die Domain gelten soll:

    Code
    include /var/www/domain.de/conf/*.conf

    Ich habe meine nginx Config in einer MySQL und ein Webinterface für die User. So können die zum Beispiel eigene Loction configs anlegen. In diesen können sie dann auch in ihrem Domain Verzeichnis selbst für diese Locations Configfiles hinterlegen.
    "<locationname>.location.conf" heissen die dann. Die werden dann in der per include geladenen Loction Config wiederum per include /Path/domain/conf/locationname.location.conf geladen.

    An anderen Stellen werden Includes vom user dann mit:

    Code
    include /Path/domain/conf/*.user.conf;


    geladen.

    So können die einzelnen Configs geziehlt und flexible eingebunden werden.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!