lindev.fr

Aller au contenu | Aller au menu | Aller à la recherche

27 mai 2011

LVM exemple de mise en pratique

recuperation-donnees-fichiers-9.jpg Cela fait longtemps que je tourne autour de ce gestionnaire de volumes jamais avoir eu l'occasion d'y mettre les mains . Aujourd'hui c'est chose faite !

LVM / LVM2 utilisation

Il y a quelques jours j'ai eu pour mission la mise en production d'un serveur web linux, hébergé sur une plateforme de virtualisation microsoft Hyper-V. Le contrainte principale était bien entendu la disponibilité de ce serveur , mais aussi la possibilité de restaurer le serveur sans connaissance particulière et surtout en un temps record ..

Première possibilité ,

La mise en place d'un cluster ( soit , deux machines virtuelles en front ou une maitre et l'autre esclave ). La machine hôte ( Hyper-V ) étant déjà bien chargé , la mise en place d'une seconde VM n'était pas envisageable.

Seconde possibilité ,

La machine hôte étant associée à une baie SAN, nous avons donc migré les données variables ( sources et BDD ) sur cette dernière , ce qui rend la restauration de la machine virtuelle aussi simple qu'un "copier coller", à partir du moment ou la vm est sauvegardé.

Pourquoi LVM

J'y viens, mettre les données dynamiques sur la baie SAN est bien beau , mais figer une taille de disque ( aussi virtuel soit-il ) est assez délicat. A moins d'être devint, il est très difficile d'estimer une taille suffisamment grande pour supporter les éventuelles évolutions, et il serait vraiment dommage de gâcher de de l'espace disque en surestimant le besoin .( l'espace disque SAS est à utiliser avec parcimonie, le moindre Go de cette qualité est précieux ).

J'ai donc créé un disque virtuel d'une taille fixe de 5Go ( il est aussi possible de créer un disque à taille variable , mais les performances chutent de 30% selon la doc ... ). 5Go est bien assez pour commencer et être tranquille un bon moment ( plus ou moins long selon l'activité ).

Ce disque virtuel nommé sdb ( que nos pouvons comparer à un disque dur physique ), sera dans un premier temps formaté, et nous allons créer une partition primaire sdb1 .

Création de la partition primaire

cfdisk /dev/sdb

Maintenant, étant donné que je souhaite utiliser ce disque avec LVM, il est nécessaire de déclarer la partition fraichement créée

Déclaration de la partition sdb1 à LVM

pvcreate /dev/sdb1

Maintenant étape importante, créer le groupe de volume(s) GV. Ce groupe de volume peut être représenté comme une unité regroupant un ensemble de volumes , ou plus simplement expliqué , une grosse partition composée de une ou plusieurs partitions de niveau inférieur appartenant ou non au même disque dur . Ce ne sera plus à vous de gérer la répartition de vos données sur entre les différentes partitions , le GV s'en chargera pour vous.

Création du GV ( Groupe de volumes )

vgcreate MONGROUP /dev/sdb1

Nous voilà maintenant avec un superbe groupe de volumes nommé MONGROUP sur lequel nous allons créer nos volumes logiques LV ( pour les utiliser comme des partitions standard )

Création d'une partition LV ( Volume Logique )

lvcreate -n mapartition -L 4,95g MONGROUP

warning.png Attention à mettre une taille valide, elle ne doit en aucun cas être supérieur à l'espace disponible ( risque de pertes ).

La partition maintenant créée, dernière étape avant de l'exploiter, le formatage .

Formatage de la partition mapartition

mkfs -t ext4 /dev/MONGROUP/mapartition

Et voilà notre volume prêt à l'emploi .

Ne reste plus qu'à le monter .. et l'exploiter ..

mount -t ext4 /dev/MONGROUP/mapartition /mnt

Je vous vois déjà venir en me disant .. que jusqu'à maintenant .. il n'y a pas d'avantage à utiliser LVM ... C'est vrai , créer simplement une partition et la formater directement serait tout aussi performant et bien plus rapide à mettre en place ..

Ok, alors le temps passe et tout d'un coup vous recevez mail de votre client indiquant avoir reçu plusieurs alerte concernant l'espace disponible sur le disque .. aïe !

Pas de panique puisque vous avez pris la peine de créer une partition géré par LVM, dans notre cas il suffira d'augmenter la taille de notre disque virtuel ( ou d'en créer un second ) et de l'ajouter à notre groupe de volumes MONGROUP

Augmenter la capacité du volume

Voyons comment faire cette manip en 5 minutes.

Dans un premier temps il faut démonter le volume avec la commande umount

Démonter le volume à modifier

umount /mnt

Puis il nous faut créer une nouvelle partition ( à partir du nouveau disque ou de l'espace disponible sur le disque virtuel sdb 5G de plus )

cfdisk /dev/sdb

info.png La nouvelle partition sera déclarée comme étant sdb2 ( à adapter dans votre cas )

Une fois la partition créée, nous allons la déclarer à LVM

pvcreate /dev/sdb2

Nous allons ensuite étendre notre groupe de volumes ( MONGROUP ) afin qu'il prenne en compte ma nouvelle partition , et de ce fait , offrir autant d'espace en plus.

Extension du groupe de volumes

vgextend MONGROUP /dev/sdb2

Voilà qui est fait. Nous allons vérifier la partition existante avant de la redimensionner

Vérification de la partition existante

e2fsck -f /dev/MONGROUP/mapartition

Une fois terminé, l'étape la plus importante , le redimensionnement de la partition . Pour commencer nous allons redimensionner notre volume logique ( LV ) mapartition

Redimensionnement de mapartition ( LV )

lvresize -L9,95g /dev/MONGROUP/mapartition

warning.png Attention à mettre une taille valide, elle ne doit en aucun cas être supérieur à l'espace disponible ( risque de pertes ).

Enfin, le volume logique redimensionné, reste à redimensionner notre système de fichiers ext4

Redimensionnement du système de fichiers ext4

resize2fs /dev/MONGROUP/mapartition

Et voilà mon espace disque vient d'augmenter de 5Go . Cette opération peut être répété autant de fois que nécessaire .

lvm2.png

Ch.

07 avr. 2010

Nginx - Vhost - php - perl - ssl

banniere-nginx.png
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

Installation , et utilisation de base

Installer Nginx manuellement , options de compilation , découvrez les emplacements des différents fichiers de configuration , démarrage automatique , options de base ect ...

Gérer les pages PHP et PERL

Nginx seul c'est bien , mais pouvoir l'utiliser avec php perl et .. tant d'autres , c'est mieux , dans ce billet , est éxpliqué la mise en place de php et perl en fast-cgi , et la liaison avec nginx .

SSL , vhost , et autres petites options

Mise en place de pages sécurisées par ssl , création de certificats , redirection automatique , mod_rewrite , compatibilité avec certains framework qui ont besoin du mod rewrite commezend framework , symphony , etc ...

06 avr. 2010

Nginx , SSL et plus encore ..

logo_openssl.gifVoici 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 ..

Open SSL

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

Certificats

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

Vhosts

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;

Restart Nginx

Et comme d'habitude , il faut recharger les fichiers de conf de nginx

/usr/local/nginx/sbin/nginx -s reload

info.pngsources de la doc

Redirection 301

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

info.pngDocumentation du module

Redirection interne / externe

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 .

Redirection pour framework

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;
    }    

Cache

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;
    }

warning.pngMais 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 .

Conclusion

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.

05 avr. 2010

Nginx + php fastcgi + perl

nginx-logo2.pngCa y est , voici la deuxième partie certainement attendu .. non !! ha .. bon .. spa grave ..
Je disais donc , nginx est maintenant en place , mais il faudrait peut être penser à le rendre compatible avec les 90% des sites sur le net aujourd'hui , c'est à dire php .. et pourquoi pas python tant que l'on y est .
Pour mettre en place cette liaison , nous allons utiliser php en fast-cgi .
Nginx ne possédant pas de mod_php comme apache , les requêtes php seronts donc transmises aux process php que nous aurons lancés en tâche de fond .
Je ne vais pas débattre des avantages et des inconvénients d'utiliser php en fastcgi , ce n'est pas le but de ce topic , mais sachez juste qu'aujourd'hui php en fastcgi est très apprécié , pour sa stabilité et sa sécurité , c'est pourquoi l'on retrouve souvent ce mode de fonctionnement chez les hébergeurs aujourd'hui ...
Vous n'étiez pas au courant ? ..

Note du 24/08/10 : Depuis php 5.3.3 il est bien plus simple et performant d'utiliser php-fpm , voir le tuto à ce sujet

PHP compilation

Et oui encore , il nous faut compiler php spécialement pour le mod fast-cgi ( ne vous inquiétez pas , il est maintenant impossible de repasser en mode cgi simple , vous aurez forcement du Fastcgi ).
Comme d'hab voici les étapes ,

  1. Récupération des source
  2. décompactage
  3. création du fichier de config à la compilation
  4. trio : ./configure make / make / install

Récupération de php

Voilà les lignes de commande correspondantes ( PHP 5.3.2 )

wget http://fr2.php.net/get/php-5.3.2.tar.gz/from/this/mirror
tar xzf php-5.3.2.tar.gz
cd /usr/local/src/php-5.3.2/
vim my_configure

Config de compilation

Voici un exemple , de config de php ( celui de ma machine de dev ) je vous laisse ajuster selon vos besoins ..

#!/bin/sh

export OPTIM=-02
./configure --prefix=/usr/local \
        --with-xsl \
        --enable-soap \
        --with-gettext \
        --enable-mbstring --with-mbstring=all \
        --disable-debug \
        --enable-memory-limit \
        --enable-ftp \
        --with-mcrypt \
        --enable-zip \
        --enable-calendar \
        --enable-exif \
        --enable-pdo \
        --with-pdo-mysql \
        --with-mysql \
        --with-pdo-sqlite \
        --with-sqlite \
        --with-zlib \
        --with-jpeg-dir \
        --with-gd \
        --enable-bcmath \
        --with-curl \

Compilation , go go go

make 
make install 

Vérification

Nous voilà avec normalement un exécutable nommé php-cgi dans /usr/local/bin_

Process FastCgi

Nous allons donc maintenant créer un script qui sera chargé de lancer X process , qui ont pour mission de répondre aux requêtes php envoyées par nginx.

Création

cd /etc/init.d/
vim php-fastcgi

Le script peut exister sous des formes plus ou moins différentes , voici celui que j'utilise :

download.pngphp-fastcgiwrapper php-fastcgi

warning.pngLà encore les script est adapté , si vous avez suivi à la lettre mon tutoriel , si vous avez effectué des modification vérifiez les paramètres , notamment:

  • USER
  • PHP_CGI

Ajout au RC

Il faut lui aussi le rendre exécutable , et le mettre dans le RC , afin que les process soient lancés au démarrage de la machine .

chmod 777 php-fastcgi
update-rc.d php-fastcgi defaults

warning.pngConcernant le nombre de process fils lancés , il faudra adapter selon la charge de votre site ... en production , la commande

netstat -atup

Vous donnera des indications sur l'état de vos process , n'en ajoutez pas trop ! travaillez de façon logique .

Vous pouvez démarrer les process :

/etc/init.d/php-fastcgi start

Liaison avec Nginx

Et bien voilà , il ne nous reste plus qu'à lui indiquer de transmettre les requêtes php aux process que nous avons lancés .

fastcgi_params

Dans un premier temps il faudra éditer le fichier de configuration fastcgi_params de nginx .

cd /etc/nginx/
vim fastcgi_params

A la fin de ce fichier , ajouter les lignes suivantes :

fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

Ces lignes permettent entre autre d'indiquer aux process quel script executer , ainsi que son chemin .

Vhost ou Nginx.conf

Selon l'utilisation ou non de vhost , il vous faut ajouter ( en fait elles y sont déjà dans le conf principale si vous avez utilisé mon fichier de config nginx.conf ) les lignes suivantes dans les accolades de server .

location ~ \.php$ {

          include /etc/nginx/fastcgi_params; #or whatever you named it
          fastcgi_pass  127.0.0.1:9000;
	  index index.php;
        }


Exemple d'un vhost:

server{

        listen 8282;

        server_name lindev.fr;

        root /home/apache2/lindev.fr;

        
        location /  {

                index index.php;

        }

        location ~ \.php$ {

          include /etc/nginx/fastcgi_params; #or whatever you named it
          fastcgi_pass  127.0.0.1:9000;
	  index index.php;
        }

}

Et voilà votre serveur peut maintenant gérer les fichiers .php

Restart Nginx

Pour que les modifications prennent effet, il vous faut demander à Nginx de relire sont/ses fichiers de conf .

/usr/local/nginx/sbin -s reload

Et bien voilà pour php .. On fait la même chose avec perl ? aller .. go !

Perl CPAN

Certains sites demandent la gestion de perl , principalement pour des site de graph , tel qu'eluna , je vais donc faire en sorte que notre serveur puisse gérer ce genre de site .. même pas peur !

FCGI

Il nous faut dans un premier temps installer le paquet FCGI par cpan :

perl -MCPAN -e 'install FCGI'

Wrapper perl fastcgi

Il faut ensuite , créer le script qui ( comme pour php ) lance des process en fastcgi en attente de script à traiter .

vim /usr/bin/fastcgi-wrapper.pl

download.pngVoilà le contenu de ce script : fastcgi-wrapper.zip

Il faut maintenant le rendre exécutable

chmod 755 /usr/bin/fastcgi-wrapper.pl

Ok maintenant , nous allons créer le script qui se situe dans le RC , pour lancer les process :

vim /etc/init.d/perl-fastcgi

download.pngVoici le fichier perl-fastcgiperl-fastcgi

On le rend exécutable , et on l'ajoute au RC

chmod 755 /etc/init.d/perl-fastcgi
update-rc.d perl-fastcgi defaults
/etc/init.d/perl-fastcgi start

Liaison perl - Nginx

Nous y voilà , les process perl sont lancés , il écoutent sur le port 8999 , il ne nous reste plus qu'à ajouter dans les Vhost qui en ont besoin , les lignes suivantes :

location ~ \.pl$ {
        gzip off;
        include /etc/nginx/fastcgi_params;
        fastcgi_pass  127.0.0.1:8999;
        fastcgi_index index.pl;
    }

warning.pngCette fois , pas besoin de modifier les fichier fcgi_params car les modifications à apporter sont les même que précédemment avec php .

Nginx restart

Et bien oui comme pour php , on relance la lecture des fichiers de conf de nginx , afin de prendre en compte les modifications .

/usr/local/nginx/sbin/nginx -s reload

Good job

Ca y est , Nginx est maintenant capable de gérer les script php et perl en plus des fichiers statiques ...

Il reste encore quelques petites choses utiles à voir , comme la gestion du SSL , les redirections automatique , les réécritures d'url, pour du 301 ou l'utilisation de framework tel que symphony , Zend ou autre basé sur la réécriture d'url et un peut de sécurité en plus ...

Voilà le programme de la troisième partie sur nginx ..

02 avr. 2010

Nginx Premiers pas

nginx-logo.png''Alors voilà , je vais essayer de présenter au mieux nginx , ou tout du moins , expliquer sont installation et utilisation .
On trouve de plus en plus de documentations sur le net , et je vais donc ici essayer de regrouper les choses , pour au final avoir un serveur HTTP digne de se nom , qui pourra sans problème remplacer son homologue Apache .
Je conseillerai même Nginx sur des machine de faible capacités en mémoire et/ou processeur .''

Présentation

Bon là je ne vais pas m'éterniser , le site NginxFr vous l'expliquera certainement mieux que moi .
En gros , c'est un serveur web ( entre autre ! ) open sources , d'origine Russe , développez pour répondre à une forte charge , grâce à une gestion des requêtes asynchrone , via des process innovants .
Ses points forts sont donc , une stabilité accrue , une faible consommation de mémoire , une simplicité de configuration , qui le rend ( je trouve ) agréable à administrer .

Notez qu'il vous est possible de tester ce serveur sans casser l'existant .. il vous suffira de le faire tourner sur un autre port , exemple , le 82 !
Aller , n'hésitez plus lancez vous dans l'aventure ...

L'installation

Comme à mon habitude , je n'utiliserai pas la version des paquet de ma distribution .
Il est pour moi important de savoir ce que j'ai sous le capot , et d'en maitriser ( ou au moins essayer ) toutes les facettes .

Récupération des sources et décompactage

cd /usr/local/src
wget http://sysoev.ru/nginx/nginx-0.7.65.tar.gz
tar xzf nginx-0.7.65.tar.gz
cd nginx-0.7.65

Nous voilà prêt à lancer la compilation de la bête ...
Commençons par éditer un fichier de configuration à la compilation , ( façon débian like comme le précise le site ) , j'ai juste ajouté l'option --with-http_stub_status_module qui permet d'avoir l'équivalent du server-status d'apache .
Pour les autres options , je vous laisse voir la description de chacun d'eux qui sont tres bien documenté à cette adresse

Fichier my_configure

vim my_configure

Et voici le contenu :

#!/bin/sh

./configure \
  --conf-path=/etc/nginx/nginx.conf \
  --error-log-path=/var/log/nginx/error.log \
  --pid-path=/var/run/nginx.pid \
  --lock-path=/var/lock/nginx.lock \
  --http-log-path=/var/log/nginx/access.log \
  --http-client-body-temp-path=/var/lib/nginx/body \
  --with-http_ssl_module \
  --http-proxy-temp-path=/var/lib/nginx/proxy \
  --with-http_stub_status_module \
  --http-fastcgi-temp-path=/var/lib/nginx/fastcgi \
  --with-debug \
  --with-http_flv_module \
  --with-http_stub_status_module

Rendons le exécutable et go ! :

chmod 777 my_configure
./my_configure
make
make install
mkdir -p /var/lib/nginx/body

warning.png Il vous faudra certainement installer des librairies manquantes ... les messages d'erreurs vous indiquerons lesquels .

Configuration

Nous allons maintenant nous attaquer à la configuration de la bête ... pour commencer .. ou ce trouve quoi !

Emplacements des éléments

Petit tour d'horizon , comme spécifié à la configuration , les principaux fichiers de conf se trouvent dans :

/etc/nginx/

Les fichiers de logs :

/var/log/nginx/

L'exécutable :

/usr/local/nginx/sbin/

Rotation des logs

Si vous ne voulez pas que vos fichiers de logs remplissent le disque en quelques mois , alors , il est préférable de faire une rotation journalière .
Nous allons dédier cette tâche à logrotate .

cd /etc/logrotate.d/
vim nginx

Et voici le contenu :

/var/log/nginx/*.log {
        daily
	missingok
	rotate 5
	compress
	delaycompress
	notifempty
	create 640 root adm
	sharedscripts
	postrotate
    	if [ -f /var/run/nginx.pid ]; then
    		/usr/local/nginx/sbin/nginx -s reload > /dev/null
    	fi
   	endscript

}

download.pngOu si vous préférez en format à dl : nginx_logrotatenginx

Configuration principale

Le fichier de configuration principale se trouve donc là : /etc/nginx/nginx.conf
Nous allons sauvegarder la version originale , et démarrer de 0 , enfin presque ..

cd /etc/nginx/
mv nginx.conf nginx.conf.old
vim nginx.conf

warning.png Si vous souhaitez faire tourner votre serveur nginx sur un autre port , n'oubliez pas de le modifier ( directive listen ) . De même que l'utilisateur que j'utilise www-data n'est pas forcément le même pour vous .. adaptez à votre conf.

download.pngJe vous met le fichier de conf à dispo , ici : nginx.confnginx.conf

Pour ce qui est des explications sur chaque option , les utilisateurs d'apache trouverons tres vite leurs marques , de plus la documentation est compléte ici.

les Vhosts

Vous l'avez certainement remarqué , dans nginx.conf , il y a la ligne

include /etc/nginx/site-enabled/*;

Qui permet de gérer les vhosts de façons structuré , tous les fichiers de conf présents dans ce répertoire seront analysé par nginx à sont lancement .

Préparons le terrain avant de creer notre premier vhost .

mkdir site-available
mkdir site-enabled

Voici maintenant la création d'un vhost type , le plus simple du monde .

cd /etc/nginx/site-available
vim monsite.com

Et voilà le contenu type :

server {
        listen       80;
        
        server_name  monsite.com  www.onsite.com;

        location / {
            root   html;
            index  index.html index.htm;
        }
    }

Vous pouvez donc spécifier un ou plusieurs ports par vhost , ensuite définir des options propre à chaque location .
Nous verrons par la suite comment par exemple ajouter des régles de cache pour les données statics , ou rediriger en fonction de l'ip ect ... mais ne brulons pas les étapes .
Activons notre vhost !

ln -s /etc/nginx/site-available/monsite.com /etc/nginx/site-enabled/

Start Nginx

Pour la première fois nous allons donc lancer nginx afin de tester la conf de base , pour celà il faut vous rendre dans le répertoire contenant l'exécutable .

info.pngl'executable nginx s'utilise de cette façon :

nginx -s [ stop | quit | reopen | reload ] 

Pour démarrer :

cd /usr/local/nginx/sbin/

Et go

./nginx

Il ne doit y avoir aucun message au lancement , vous pouvez vérifier au niveau des logs si tout se passe bien ,

tail -f /var/log/nginx/error.log

Si tout est ok , alors vous voilà prêt à servir des page statiques .. testez avec votre navigateur !

http://localhost:80

Démarrage automatique

Vous avec votre serveur dans sa configuration de base prêt à l'emploi , mais au prochain redémarrage , celui-ci ne sera pas automatiquement lancé , nous allons donc créer de quoi automatiser tout ça ( debian like ).

Rendez-vous dans /etc/init.d/ et éditer le fichier nginx

cd /etc/nginx
vim nginx

Je vous met donc à disposition le script de démarrage ici : nginxnginx

warning.pngLe fichier que je vous donne est adapté à la configuration donné dans ce tuto , si vous avez modifié des choses à la compilation , n'oubliez pas d'adapter ce script au besoin .

Nous allons maintenant le rendre exécutable , puis le déclarer dans les RC

chmod 777 nginx
update-rc.d nginx defaults

Fin de la première partie ..

Et oui , bilan , vous avez un serveur web http , qui peut dés à présent servir du contenu statique , vous savez créer des hôtes virtuels , et votre serveur démarre automatiquement à démarrage de votre machine .
Ouf ... et bien il nous reste plus qu'à prendre en charge les scripts php , et - ou perl , qui sera le sujet de la deuxième partie .. ( rédaction en cours )

- page 1 de 2