Nginx est un serveur web puissant utilisé notamment par WordPress.com. Mieux adapté aux sites à haut trafic qu’Apache, Nginx peut non seulement augmenter la vitesse de votre site, mais également supporter un nombre plus élevé de visiteurs simultanément sans équipement additionnel. Apprenez-en davantage sur l’installation et la configuration d’un serveur Nginx pour rendre votre site avec WordPress encore plus efficace.
Pour un tutoriel complet afin de créer une installation de WordPress sous Nginx:
http://www.maximejobin.com/wordpress/introduction-nginx-wordpress/
2. @maximejobinWordCamp Montréal 2014 - #wcmtl
Votre situation actuelle
• Votre site plante à cause du nombre de requêtes ?
• Votre site accueille plus de 5000 visiteurs par jour ?
• Vous souhaitez augmenter l’efficacité de votre site ?
• Vous souhaitez quitter le combo cPanel / Apache ?
• Vous êtes curieux par rapport à Nginx ?
• Vous vous êtes trompés de salle ?
3. @maximejobinWordCamp Montréal 2014 - #wcmtl
Maxime Jobin
www.maximejobin.com
m@ximejobin.com
@maximejobin
Utilisateur, Administrateur, Développeur et Formateur
4. @maximejobinWordCamp Montréal 2014 - #wcmtl
Nginx (Engine X)
Nginx est un serveur web
servant à la gestion de sites
web à haut trafic.
nginx.org vs nginx.com
5. @maximejobinWordCamp Montréal 2014 - #wcmtl
Origine
C10k: Gestion simultanée de 10 000
connexions
Créé en 2002 par Igor Sysoev, la première
version a été lancée en 2004.
9. @maximejobinWordCamp Montréal 2014 - #wcmtl
Utilisateurs de Nginx
WordPress.com
Mensuellement
14 milliards de pages vues
42 millions de nouveaux articles
51 millions de nouveaux commentaires
Chaque jour, des dizaines de milliers de
nouveaux sites y sont créés.
Source: WordPress.com
10. @maximejobinWordCamp Montréal 2014 - #wcmtl
Objectifs
• Installation Nginx
• Installation de PHP
• Installation de PHP-FPM
• Installation de MySQL
• Installation de WordPress
Environnement utilisé: Ubuntu 14.04 via DigitalOcean.com
11. @maximejobinWordCamp Montréal 2014 - #wcmtl
Preparation
Achat de « monsite.com » et redirection
vers l’adresse IP du serveur.
> apt-get update
> apt-get upgrade
12. @maximejobinWordCamp Montréal 2014 - #wcmtl
Installation de Nginx
> apt-get install nginx
Répertoires pour Nginx
/etc/nginx
nginx.conf
/etc/nginx/sites-available
/etc/nginx/sites-enabled
Validation via adresse IP: http://66.77.88.99
13. @maximejobinWordCamp Montréal 2014 - #wcmtl
Commandes pour Nginx
> service nginx start Démarre Nginx
> service nginx stop Arrête Nginx
> service nginx restart Relance Nginx
> service nginx reload Recharge config
> /usr/sbin/nginx -t Test config
15. @maximejobinWordCamp Montréal 2014 - #wcmtl
Configuration pour Nginx
À placer dans /etc/nginx/sites-available/monsite.com
server {
listen 80;
server_name www.monsite.com;
root /home/monsite/www;
index index.html index.php;
}
ifs are ev
16. @maximejobinWordCamp Montréal 2014 - #wcmtl
Tester Nginx pour monsite.com
> /usr/sbin/nginx -t
> service nginx reload
http://www.monsite.com
17. @maximejobinWordCamp Montréal 2014 - #wcmtl
Installation de PHP et MySQL
> apt-get install php5-cli
> apt-get install mysql-server mysql-
client php5-mysql
18. @maximejobinWordCamp Montréal 2014 - #wcmtl
PHP-FPM
PHP-FPM sert d’intermédiaire pour que la requête
reçue par Nginx soit interprétée par PHP.
> apt-get install php5-fpm
/etc/php5/fpm/php.ini
19. @maximejobinWordCamp Montréal 2014 - #wcmtl
Configuration de PHP-FPM
Créer un fichier monsite.conf dans /etc/php5/fpm/pool.d/ :
[monsite]
user = monsite
group = monsite
listen = /var/run/php5-fpm.monsite.sock
listen.owner = www-data
listen.group = www-data
pm = dynamic
pm.max_children = 75
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20
pm.max_requests = 500
20. @maximejobinWordCamp Montréal 2014 - #wcmtl
Configuration pour Nginx (suite!)
À placer dans /etc/nginx/sites-available/monsite.com à
l’intérieur de server { … }
# Gestion des fichiers PHP (envoi vers PHP-FPM)
location ~ .php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php5-fpm.monsite.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
21. @maximejobinWordCamp Montréal 2014 - #wcmtl
On repart le tout…
> service php-fpm restart
> service nginx restart
Ajout d’un fichier pi.php dans
/home/monsite/www
<?php phpinfo(); ?>
Test: http://www.monsite.com/pi.php
22. @maximejobinWordCamp Montréal 2014 - #wcmtl
Base de données MySQL
> mysql -u root -p
> CREATE DATABASE monsite;
> CREATE USER 'umonsite'@'localhost' IDENTIFIED BY 'abcd';
> GRANT ALL PRIVILEGES ON monsite.* TO 'umonsite'@'localhost';
> FLUSH PRIVILEGES;
> quit
23. @maximejobinWordCamp Montréal 2014 - #wcmtl
Installons WordPress !!
> su monsite
> cd ~/www
> wget http://wordpress.org/latest.zip
> unzip latest.zip
> cd wordpress
> mv * ../
> cd ..
> rm –Rf wordpress latest.zip
http://www.monsite.com