lundi 3 mai 2010

Premiers pas avec le serveur web NGINX

J'ai procédé à des essais avec le serveur HTTP NGINX.

Pourquoi utiliser NGINX plutôt qu'Apache ? La réponse est ici: lien vers presentation.

Extraits:
Consommation mémoire:


Nombre de requetes délivrées:




Le secret de nginx réside dans l'application de deux principes:
* Le traitement concurrent (parallèle ) d'une requete.
* Un soin particulier porté dans l'écriture du code.

Nginx est particulièrement adapté pour faire du reverse-proxy et de la répartition de charge.

Installation de nginx.

Une fois que l'archive décompressée, j'ai lancé la commande :
./configure --without-http_rewrite_module --with-debug

Puis make et make install.


J'ai obtenu un répertoire nginx avec l'arborescence suivante:

ginx/conf:
fastcgi.conf koi-utf nginx.conf
fastcgi.conf.default koi-win
fastcgi_params mime.types nginx.conf.default
fastcgi_params.default mime.types.default win-utf


nginx/html:
50x.html index.html

nginx/logs:
access.log error.log nginx.pid

nginx/sbin:
nginx

Lancement.


Le fichier nginx.conf qui contiendra toute la configuration directement ou par un système d'include (ex: include mime.types; ) .


Le service se lance par la commande sbin/nginx et s'arrete par un kill PID.

Le serveur se lance sans modification du fichier de configuration et se met à l'écoute du port 80. Il utilise deux processus par défaut:

9775 ? Ss 0:00 nginx: master process sbin/nginx
9776 ? S 0:00 nginx: worker process



La vérification par telnet localhost 80
GET /
Donne un bienvenue : welcome to NGINX !

Activation du mode Proxy.


J'ai une application Rails qui fonctionne sur la même machine sous serveur mongrel sur le port 3000.

J'ai modifié nginx.conf comme ceci :

server {
listen 80;
server_name localhost;

#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://localhost:3000;
proxy_set_header X-Real-IP $remote_addr;
}

... continuation

Une requete sur http://localhost/ pointe à présent sur l'application Rails.

Les journaux d'accès ou d'erreur sont dans le répertoire nginx/logs

Aucun commentaire: