Les pages de ce site sont désormais servies par Nginx depuis quelques semaines, et j’en suis totalement ravi. Au début il y a eu une période d’incertitude et de petite frayeur du au fait de basculer d’Apache que je maitrise relativement bien, vers une plateforme toute nouvelle avec d’autres habitudes à prendre, d’autres conventions, un style différent (mais pas tant que ça). D’ailleurs en parlant de petite frayeur, avant-hier les sites hébergés sur le Kimsufi ont été indisponibles durant environ 4 heures, j’ai bataillé et sué fort pour trouver mon erreur, ma foi comme souvent, un peu bête (*).
Ce billet fait un peu le point sur ma configuration actuelle de Nginx. J’ai essayé de la faire le plus modulaire possible en créant des blocs relatifs à certains environnements qui sont ou non inclus dans les server blocks (le nom des virtual hosts chez Nginx). Par exemple, j’ai un morceau de code pour les spécificités de WordPress, de Koken ou pour ajouter la gestion HTTPS (SSL).
Configuration
Avec Fedora, la configuration de Nginx se situe sous /etc/nginx
, j’y ai créé 2 autres répertoires /etc/nginx/global
et /etc/nginx/vhosts
. Dans le premier je place tous les blocs de code possiblement redondants – ceux cités plus haut – et dans le second sont placés tous les server blocks, personnellement je crée un fichier par domaine, par exemple j’ai /etc/nginx/vhosts/feub.net.conf
pour feub.net.
Le fichier lu par Nginx est /etc/nginx/nginx.conf
, je ne l’ai pour ainsi dire pas touché, j’ai juste ajouté un include
vers mon répertoire de vhosts
, prenant en compte les fichiers se terminant par .conf
uniquement :
include /etc/nginx/vhosts/*.conf;
Et voici un exemple de fichier de configuration pour le domaine feub.net :
server {
listen 80;
server_name www.feub.net;
rewrite ^(.*) http://feub.net$1 permanent;
}
server {
listen 80;
server_name feub.net;
root /var/www/websites_root/feub.net/www/html;
index index.php index.html index.htm;
access_log /var/log/nginx/feub.net.access.log;
error_log /var/log/nginx/feub.net.error.log;
location / {
try_files $uri $uri/ /index.php?$args;
}
include global/php.conf;
include global/wordpress.conf;
include global/things_not_logged.conf;
}
Continue reading « Ma configuration Nginx »