Sommaire
I. Pourquoi Nginx?
A force d’en entendre parler, j’ai voulu le tester. Habituellement j’utilise lighttpd (sur des serveurs avec peu de ressources ou à la maison) et apache. Nginx est dit plus léger et consommant moins de mémoire RAM. Alors c’est tentant 😛
II. Installation de Nginx
Alors, nous allons utiliser Ubuntu Server 14.04 LTS. Vous allez voir l’installation est vraiment très compliquée 😀
Il suffit de faire:
sudo apt-get intall nginx
Vous pouvez tester dés à present en ouvrant votre navigateurs web préféré et entrez l’adresse ip de votre serveur dans la barre d’adresse.
III. Configuration de Nginx
Pour la configuration tout se passe dans le dossier /etc/nginx
drwxr-xr-x 5 root root 4096 Apr 5 21:31 ./
drwxr-xr-x 92 root root 4096 Apr 5 21:43 ../
drwxr-xr-x 2 root root 4096 Feb 11 17:26 conf.d/
-rw-r–r– 1 root root 911 Mar 4 2014 fastcgi_params
-rw-r–r– 1 root root 2258 Mar 4 2014 koi-utf
-rw-r–r– 1 root root 1805 Mar 4 2014 koi-win
-rw-r–r– 1 root root 2085 Mar 4 2014 mime.types
-rw-r–r– 1 root root 5287 Mar 4 2014 naxsi_core.rules
-rw-r–r– 1 root root 287 Mar 4 2014 naxsi.rules
-rw-r–r– 1 root root 222 Mar 4 2014 naxsi-ui.conf.1.4.1
-rw-r–r– 1 root root 1601 Mar 4 2014 nginx.conf
-rw-r–r– 1 root root 180 Mar 4 2014 proxy_params
-rw-r–r– 1 root root 465 Mar 4 2014 scgi_params
drwxr-xr-x 2 root root 4096 Apr 5 21:39 sites-available/
drwxr-xr-x 2 root root 4096 Apr 5 21:40 sites-enabled/
-rw-r–r– 1 root root 532 Mar 4 2014 uwsgi_params
-rw-r–r– 1 root root 3071 Mar 4 2014 win-utf
- nginx.conf est le fichier de configuration principale
- conf.d/ dossier contenant des fichiers de configuration additionels
- sites-available dossier contenant la liste des fichiers de configuration des sites
- sites-enable : dossier contenant la liste des fichiers de configuration des sites actifs
Le fonctionnement: on créer les fichiers de configurations pour chacun site dans le dossier sites-available puis on créer un lien symbolique dans le dossier sites-enable pour activer la configuration du site en question.
Et bien c’est parti lançons nous.
Commençons par supprimer le site par défaut.
Ensuite nous allons créer notre dossier où l’on va mettre notre ou nos sites web. Puis une page html simpliste
sudo mkdir /var/www/test
sudo nano /var/www/test/index.html
<html><body>Ma page de test</body></html>
Maintenant, passons à la configuration de ce site. Adaptez à votre situation.
sudo nano /etc/nginx/sites-available/monsitedetest
# Mon site de test
server {
listen 80;
root /var/www/test;
index index.html index.htm;
server_name localhost;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to index.html
try_files $uri $uri/ /index.html;
}
}
Il faut activer notre fichier de configuration pour cela on créé un lien symbolique.
cd /etc/nginx/sites-enabled
sudo ln -s ../sites-available/monsitedetest
Un petit redémarrage de Nginx
Maintenant si l’on retourne sur notre navigateur à l’adresse : http://ip_de_votre_serveur nous avons:
Bien voila en 5 minutes vous avez installer et configurer votre serveur web.
IV. Modules à rajouter
A ce stade Nginx ne prend pas (encore) en charge le php, il va falloir le rajouter. La encore rien de bien compliqué.
Il nous reste plus qu’à modifier notre fichier de configuration de notre site de test.
sudo nano /etc/nginx/sites-available/monsitedetest
# Mon site de test
server {
listen 80;
root /var/www/test;
index index.html index.htm;
server_name localhost;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to index.html
try_files $uri $uri/ /index.html;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php5-fpm.sock;
include /etc/nginx/fastcgi_params;
fastcgi_index index.php;
}
}
De nouveau un petit redémarrage de Nginx
On créer un fichier de test php pour vérifier que tous est OK.
sudo nano /var/www/info.php
<?php
phpinfo();
?>
Retournons sur notre navigateur à l’adresse : http://ip_de_votre_serveur :
Mise à jour: Si vous avez une blank page (page vierge) = error 200
remplacer dans le fichier /etc/nginx/sites-available/monsitedetes ceci:
include /etc/nginx/fastcgi_params;
PAR
include /etc/nginx/fastcgi.conf;
Voila tout est bon, vous pouvez créer votre site.
Pour plus de configuration n’hésitez pas à visiter le site de nicolargo dont je me suis inspiré.