Nginx

De WikiOpenTruc
Aller à : navigation, rechercher

Dispo pour Debian et pour Raspbian.

Configuration mono-site

Il faut surtout aller bidouiller /etc/nginx/sites-available/default , en faisant quand même un peu attention. Penser à bien sauvegarder tous les fichiers bidouillés.

C'est ce fichier qui permet d'afficher tel ou tel répertoire de /var en fonction du contenu de la barre d'adresse.

# /etc/nginx/sites-available/default
##
# Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples.
##

# Default server configuration
#
server {
	listen 80 default_server;
	listen [::]:80 default_server;

#	root /var/www/html; par defaut ... pas top
	root /var/www;

	# Add index.php to the list if you are using PHP
	index index.html index.htm index.nginx-debian.html;

	server_name _;

	location / {
		try_files $uri $uri/ =404;
	}

	location /test {
	}

	location /bro {
	}

}

Dans l'exemple ci-dessus, 2 sous-domaines sont rendus accessibles.

On peut bien entendu mettre le répertoire de son choix en root.
C'est le contenu de ce répertoire là qui s'affichera lors d'un accès via l'IP ou via le nom de domaine associé à l'IP. (Voir VPS)

Noter que c'est aussi dans ce fichier qu'on spécifie le port sur lequel nginx délivre son service.

Attention

  • Quand on a fini de bidouiller : # nginx -s reload pour demander à nginx de prendre en compte les changements


Configuration multi-site

Nginx permet de servir plusieurs sites sur une même machine.

Il suffit tout bonnement de créer pour eg site02 un fichier /etc/nginx/sites-available/site02 sur le modèle de /etc/nginx/sites-available/default

Beaucoup de CMS et consorts fournissent un fichier nginx tout cuit, qu'il suffit de recopier ou qui est recopié automatiquement à l'install.

Attention : Only configurations in sites-enabled will actually be public to visitors (https://carrot.is/coding/nginx_introduction)

Nginx stocke les paramètres d'accès aux sites grâce à 2 répertoires :

  • /etc/nginx/sites-available
  • /etc/nginx/sites-enabled

Le répertoire sites-available contient les paramétrages relatifs à tous les sites qu'on souhaite, mais pour qu'un site soit accessible, il doit obligatoirement aussi figurer dans sites-enabled. Et cela se fait avec un lien symbolique : ln -s depart arrivee

Dans la config de base de nginx, le fichier de paramètres /etc/nginx/sites-available/default est déjà présent et déjà lié symboliquement. Mais si on rajoute des sites, alors il faut aussi lier leurs fichiers de paramètres dans /etc/nginx/sites-enabled, sinon ils ne s'affichent pas.

Et ensuite, c'est nginx qui fait le boulot d'utiliser le fichier concerné et de servir le site demandé.

Ne pas oublier : quand on a fini de bidouiller, # nginx -s reload pour demander à nginx de prendre en compte les changements


Les sites

Le contenu des sites à servir se trouve par défaut dans /var/www. C'est l'install de nginx qui provoque la création de /var/www.

Sous linux, /var est un répertoire préexistant et est basiquement en mode rwxr-xr-x root root. On ne touche pas à cela.
Par défaut, /var/www est basiquement en mode rwxr-xr-x root root. Normalement, on ne touche pas non plus à ça.

Ce sont les répertoires dans /var/www qui contiendront le contenu des sites ou sous-domaines hébergés. Normalement, on ne recours jamais à 777 pour les droits. ça se règle via chown/chgrp.


Pages connexes


Liens