[Nginx] Wat plaats je in nginx.conf en wat in de vhost?

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Mexxus
  • Registratie: Januari 2004
  • Laatst online: 20-09 17:01
Hi all,

Ik heb een Ubuntu server waarop ik 10 verschillende website's wil draaien in elk een eigen vhost (want: allemaal eigen domeinnaam). Nu zijn vrijwel alle nginx settings voor elke website gelijk, behalve de "server_name" en de bijbehorende "root" folder. Ik vroeg me af of ik de generieke settings wellicht in een default file kan plaatsen en vervolgens de vhost files in sites-available enkel de site specifieke zaken kan plaatsen. Echter, wat ik probeer, telkens weigert mn nginx server te reloaden of te ferstarten (telkens fail).

Concrete vraag: waar kan ik generieke site eigenschappen plaatsen? In nginx.conf, of elders? En op welke wijze?

Acties:
  • 0 Henk 'm!

  • DexterDee
  • Registratie: November 2004
  • Nu online

DexterDee

I doubt, therefore I might be

Ik zou ze persoonlijk niet in de nginx.conf zetten, dat maakt het mergen van settings bij een package upgrade nodeloos moeilijker. Je kunt een conf.d directory aanmaken in /etc/ngnix en in de nginx.conf een include doen van *.conf in die directory. Als je dan generieke settings wil maken is het gewoon een kwestie van een conf file aanmaken in de conf.d directory.

Klik hier om mij een DM te sturen • 3245 WP op ZW


Acties:
  • 0 Henk 'm!

  • Mexxus
  • Registratie: Januari 2004
  • Laatst online: 20-09 17:01
DexterDee schreef op dinsdag 15 juli 2014 @ 11:24:
Ik zou ze persoonlijk niet in de nginx.conf zetten, dat maakt het mergen van settings bij een package upgrade nodeloos moeilijker. Je kunt een conf.d directory aanmaken in /etc/ngnix en in de nginx.conf een include doen van *.conf in die directory. Als je dan generieke settings wil maken is het gewoon een kwestie van een conf file aanmaken in de conf.d directory.
Goed idee. Maar iets wat ik normaal in een vhost in de server{} blok zet, moet dat in de .conf file dan ook in een server{} blok? Want als ik dat doe weigert nginx evengoed te reloaden...

Acties:
  • 0 Henk 'm!

  • Solopher
  • Registratie: December 2002
  • Laatst online: 11-09 14:55
Ik heb dit zelf zo opgelost:

code:
1
2
3
4
5
6
7
8
9
10
11
12
location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ {
    access_log        off;
    log_not_found     off;
    expires           360d;
}

location ~ /\. {
    access_log off;
    log_not_found off;
    deny all;
}
~

code:
1
2
3
server {
    include /etc/nginx/conf.d/default_web.conf;
}


Dan kun je ze bijv. ook aanmaken voor php etc.

Acties:
  • 0 Henk 'm!

  • DexterDee
  • Registratie: November 2004
  • Nu online

DexterDee

I doubt, therefore I might be

Inderdaad @Solopher, zo heb ik het ook opgelost. Als je een include doet in een blok, dan gelden alle settings alsof ze in dat blok staan.

Klik hier om mij een DM te sturen • 3245 WP op ZW


Acties:
  • 0 Henk 'm!

  • Mexxus
  • Registratie: Januari 2004
  • Laatst online: 20-09 17:01
Solopher schreef op dinsdag 15 juli 2014 @ 13:05:
Ik heb dit zelf zo opgelost:

code:
1
2
3
4
5
6
7
8
9
10
11
12
location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ {
    access_log        off;
    log_not_found     off;
    expires           360d;
}

location ~ /\. {
    access_log off;
    log_not_found off;
    deny all;
}
~

code:
1
2
3
server {
    include /etc/nginx/conf.d/default_web.conf;
}


Dan kun je ze bijv. ook aanmaken voor php etc.
Ik krijg het niet voor elkaar :-(.. Ik zet in m'n sites-available/default:

code:
1
2
3
4
5
6
7
8
9
server {

        listen  127.0.0.1:8080;

        root /home/user/www;
        index index.php index.html index.htm;

        include /etc/nginx/conf.d/default-config.conf;
}


En vervolgens in /etc/nginx/conf.d/default-config.conf:
code:
1
if ($http_user_agent ~* "^BlackWidow"){ return 403; }


Als ik dan nginx reload dan krijg ik een "fail" 8)7

Acties:
  • 0 Henk 'm!

  • Mexxus
  • Registratie: Januari 2004
  • Laatst online: 20-09 17:01
Als ik overigens exact doe wat jij doet dan krijg ik de volgende melding in m'n log:

code:
1
2014/07/15 19:02:28 [emerg] 3021#0: "location" directive is not allowed here in /etc/nginx/conf.d/default-config.conf:1

Acties:
  • 0 Henk 'm!

  • Mexxus
  • Registratie: Januari 2004
  • Laatst online: 20-09 17:01
Gelukt! Blijkbaar kon nginx niet lezen uit de conf.d/ directory, want zodra ik de default-config.conf had verplaatst naar de root van de nginx directory werkt het wel!
Pagina: 1