Bon , le billet qui sert de pont de départ ... pas toujours évident sur un blog de s'y retrouver .. sans sommaire ...
Voici donc le sommaire concernant les billets de Nginx
Cértifié PHP5

Aller au contenu | Aller au menu | Aller à la recherche
07 avr. 2010
Par Christophe de saint leger le mercredi, avril 7 2010, 16:17 - Serveur
Bon , le billet qui sert de pont de départ ... pas toujours évident sur un blog de s'y retrouver .. sans sommaire ...
Voici donc le sommaire concernant les billets de Nginx
06 avr. 2010
Par Christophe de saint leger le mardi, avril 6 2010, 08:58 - Serveur
Voici le troisième volet sur Nginx et son utilisation .
Nous allons voir aujourd'hui la mise en place d'un certificat pour une connexion sécurisé SSL via OpenSSL , mais aussi un passage sur les réécritures d'url , en fonction d'une classe d'adresse IP ,ou la mise en place de réécritures pour l'utilisation d'un framework tel que le ZF , Sympho ou Autres ...
La mise en cache des données statiques ...
Etc etc ..
Il faut dans un premier temps générer les certificats auto-signés , pour celà il vous faudra installer openssl
apt-get install openssl
Ensuite , nous allons générer un certificat , plaçons nous dans un le répertoire de conf de Nginx .
mkdir /etc/nginx/certificats cd /etc/nginx/certificats openssl req -new -x509 -nodes -out mon-site.fr.crt -keyout mon-site.fr.key
Nous voilà avec de magnifiques certificats auto-signés , nous allons maintenant modifier notre vhost pour qu'il soit dorénavant en https .
Nous allons donc changer le
listen 80;
par
listen 443;
Et enfin , voici les quelques lignes à ajouter pour utiliser nos certificats fraichement crées .
ssl on; ssl_certificate /etc/nginx/certificats/mon-site.fr.crt; ssl_certificate_key /etc/nginx/certificats/mon-site.fr.key; ssl_session_timeout 5m;
Et comme d'habitude , il faut recharger les fichiers de conf de nginx
/usr/local/nginx/sbin/nginx -s reload
Il est parfois ( souvent ) utile de faire des redirection 301 pour une histoire de référencement ou autres , voici la conf du vhost à rediriger :
server {
listen 80;
server_name example.com;
rewrite ^/(.*) http://www.example.com/$1 permanent;
}
Pour mettre un code 302 , il faut juste changer permanent par redirect
Documentation du module
Prenons l'exemple d'un site qui de l'extérieur est accessible en ssl , et de façon standard en local , voilà comment faire une redirection automatique :
if ($remote_addr !~ "^(10\.0\.0\.\d+)"){
rewrite ^/(.*)$ https://siteA.mon-site.fr permanent;
}
Chaque client dont l'adresse IP n'est pas 10.0.0.0-255 se verra obligé de passer par une connexion sécurisée .
Beaucoup de framework tel que le zend-framework , symphony et bien d'autres utilisent des règles de redirections ( via par exemple le mod_rewrite d'apache ) pour rediriger toutes URL différentes de média statiques vers le bootstrap ( index.php ) , qui lui s'occupe de lancer le chef d'orchestre .
Voilà le code à ajouter dans votre vhost pour effectuer cette redirection .
location / {
index index.php;
if (-f $request_filename) {
access_log off;
expires max;
}
if ($request_filename !~ "\.(js|ico|gif|jpg|jpeg|png|css|txt|pdf|doc|odt|xls|swf|mp3)$") {
rewrite ^(.*) /index.php last;
}
Nginx peut aussi gérer du cache , pour servir plus rapidement , les données dites statiques , voilà une façon de l'activer :
location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico)$ {
access_log off;
expires 30d;
}
Une autre méthode , ( qui est présente ci-dessus )
if (-f $request_filename) {
access_log off;
expires max;
}
Mais attention , cette deuxiéme méthode , n'est valable que si vous utilisez un framework , qui joue avec les réécritures d'url , car le script ci-dessus se traduit comme ceci :
Si le fichier de la requête existe , alors on le met/ utilise en cache .
Etant donne que l'utilisation de réécriture d'url , implique que toutes les requêtes utilisateurs , sont "factices" , elles ne représentent pas réellement la structure de fichiers/répertoires de votre site , sauf , le fichiers statiques tels que les images , css , js etc ... mais les chargements sont fait automatiquement .
Voilà pourquoi cette deuxième méthode ne fonctionne qu'avec un FW qui utilise la réécriture d'url .
Et bien cette fois nous y voilà , un serveur http complet , prêt à servir de nombreuses pages , à héberger n'importe quel framework , et tout ça avec de trés bonnes performances .
De nombreuses autres options / modules existes , je vous invite à les parcourir :
modules nginx
En espèrent que cette petite série de tuto vous a intéressé , n'hésitez pas à laisser un commentaire , ça fait toujours plaisir ,
Christophe.
« billets précédents - page 1 de 5