Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
tutoriel:reverse_proxy_nginx [Le 01/07/2010, 15:54]
Miam Miam
— (Version actuelle)
Ligne 1: Ligne 1:
-{{tag> Lucid tutoriel nginx BROUILLON}} 
----- 
- 
-====== Configuration d'un proxy inverse avec nginx ====== 
- 
-Ce tutoriel montre la configuration de nginx en tant que reverse proxy cache. 
- 
-Cette configuration contiendras les éléments suivants: 
- 
-   * cache au niveau dureverse proxy  
-   * activation des champs expires dans la requête http 
-   * compression entre le client et le reverse proxy  
-   * limitation des connexions entre le client et le reverse proxy (nombre et temps) 
- 
-===== Pré-requis ===== 
- 
-  * Avoir lu la page de documentation sur [[:​nginx|Nginx : serveur Web asynchrone]]. 
-  * Comprendre la fonction d'un reverse proxy ou un proxy inverse [[http://​fr.wikipedia.org/​wiki/​Reverse_proxy-article wikipedia]]. 
-===== Configuration ===== 
- 
-<note important>​ 
-Cette section est en cours  de rédaction ! Certain termes ne sont pas très "​académiques"​ n'​hésitez pas à les modifiers si vous les connaissez. 
-</​note>​ 
- 
- 
-La configuration qui va suivre se décomposeras en 3 parties la paramétrage globale du serveur nginx, le paramétrage des fonctions des reverse proxy et de cache et un exemple de configuration du serveur web se trouvant derrière le reverse proxy. ​ 
- 
-Les fichiers et les dossiers de configuration utilisés seront 
- 
-  /​etc/​nginx/​nginx.conf 
-  /​etc/​nginx/​conf.d/​proxy.conf 
-  /​etc/​nginx/​sites-enabled/​ 
-  /​etc/​nginx/​sites-available/​ 
-  ​ 
-Cette séparation a pour but d'​ajouter de la clarté dans la configuration car tout les fichiers de configuration sont inclus dans le fichier nginx.conf. 
- 
-=== Configuration globale du serveur === 
- 
-La configuration se fait dans le fichier /​etc/​nginx/​nginx.conf 
- 
-Contenu du fichier ​ 
- 
-<​code>​ 
-user www-data; 
-worker_processes ​ 1; 
-error_log ​ /​var/​log/​nginx/​error.log;​ 
-pid        /​var/​run/​nginx.pid;​ 
-events { 
- worker_connections ​ 1024; 
-} 
-http { 
-    include ​      /​etc/​nginx/​mime.types;​ 
-    default_type application/​octet-stream;​ 
-    access_log ​ /​var/​log/​nginx/​access.log;​ 
-    sendfile ​       on; 
-    #​tcp_nopush ​    on; 
-    #​keepalive_timeout ​ 0; 
-    keepalive_timeout ​ 65; 
-    tcp_nodelay ​       on; 
-    # envoi moins d'​information sur le serveur 
-    server_tokens off; 
- 
-     # taille des buffers et taille max des requêtes normales 
-    client_body_buffer_size 1k; 
-    client_max_body_size ​   8m; 
-    large_client_header_buffers 1 1K; 
-    ignore_invalid_headers on; 
-    # timeout 
-    client_body_timeout 5; 
-    client_header_timeout 5; 
-    keepalive_timeout 5 5; 
-    send_timeout 5; 
-    ignore_invalid_headers on; 
-    server_name_in_redirect off; 
-    # active la compression des pages sauf pour les navigateurs pourris 
-    gzip  on; 
-    gzip_comp_level 6; 
-    gzip_proxied any; 
-    gzip_vary on; 
-    gzip_types ​ text/plain text/css application/​x-javascript;​ 
-    gzip_disable "MSIE [1-6]\.(?​!.*SV1)";​ 
-    ​ 
-    # limitation du nombre de connexion par client 
-     ​limit_zone gulag $binary_remote_addr 1m; 
-     ​limit_conn gulag 50; 
- 
-    include /​etc/​nginx/​conf.d/​*.conf;​ 
-    include /​etc/​nginx/​sites-enabled/​*;​ 
-} 
-</​code>​ 
- 
- 
-^ options ​                 ^ explications ​         ^ 
-| user        | utilisateur avec lequel sera lancé le processus, celui ci doit avoir le moins de privilèges possible ​   | 
-|  worker_processes ​                   |    corespond au nombre de coeurs ​             | 
-|  worker_connections ​                  ​| ​   fixer ce paramètre en fonction du calcul ci dessous (valable que sur un reverse proxy) ​   max_clients = worker_processes * worker_connections/​4 ​        | 
-|access_log | chemin vers le fichier log des connexions| 
-|error_log | chemin vers le fichier log des erreurs | 
-| default_type | type par défaut des fichiers dont le type n'est pas répertorier dans le fichier mimes.types | 
-|server_tokens off | permet de divulger moins d'​information sur le reverse proxy | 
-|client_body_buffer_size | définit la taille au dela de laquelle la requete sera enregistrée dans un fichier | 
-|client_max_body_size | taille max des donnes envoyés par un client ​ | 
-| large_client_header_buffers | définit le nombre de buffer ainsi que leurs tailles, la taille max de la requete uri est donc la multiplication de ces deux chiffres | 
-| client_body_timeout | Si le client n'​evoie pas la totalité de sa requête en 5 sec c'est mort ! | 
-| client_header_timeout ​ | Si le client n'​envoie pas l'​entete de sa requête même traitement| 
-| keepalive_timeout 5 5| premier chiffre temps max d'une connexion keepalive, deuxième chiffre indication de cette valeur dans le champ timeout de l'​entête de la réponse | 
-| keepalive_requests 100  | nombre de requête keep alive sur une connexion | 
-| send_timeout | temps maximum de latence lors d'un envoi | 
-| ignore_invalid_headers | supprime les requêtes malformés | 
-| server_name_in_redirect | désactive la réécriture du nom de serveur, protection contre les scans | 
-| gzip  | activation ou désactivation de la compression | 
-|gzip_comp_level ​ | niveau de compression (peut aller jusqu'​à 9) | 
-| gzip_proxied any  | activer la compression pour la réponse du serveur web derrière le reverse proxy | 
-| gzip_vary | active l'​entête http "Vary: Accept-Encoding" ​ | 
-| gzip_types | les types de fichier qui seront compréssé | 
-| gzip_disable | permet la désactivation de la compression pour les navigateurs pourris | 
-|limit_zone gulag $binary_remote_addr 1m | crée une zone de sctockage nommée « gulag » utilisant ​ moins de 1 mo de RAM, contenant l'​états des connexions classé par adresse ip | 
-| limit_conn gulag 50 |  limite le nombre de demande de connexions parallèles à 50 par client | 
- 
- 
- 
-=== Paramétrage des fonctions reverse proxy et cache === 
- 
-Les paramètres du reverse proxy et du cache seront consignés dans le fichier /​etc/​nginx/​conf.d/​proxy.conf pour plus de clarté 
- 
-Si vous voulez plus d'​informations sur la configuration du proxy aller voir la section de la documentation officielle [[http://​wiki.nginx.org/​NginxHttpProxyModule|ici]]. 
- 
-Contenu du fichier  ​ 
- 
-<​code>​ 
-proxy_redirect ​         off; 
-proxy_set_header ​       Host            $host; 
-proxy_set_header ​       X-Real-IP ​      ​$remote_addr;​ 
-proxy_set_header ​       X-Forwarded-For $proxy_add_x_forwarded_for;​ 
-proxy_hide_header ​      ​X-Powered-By;​ 
-proxy_intercept_errors on; 
-proxy_buffering on; 
- 
- 
-proxy_cache_key "​$scheme://​$host$request_uri";​ 
-proxy_cache_path /​var/​cache/​nginx levels=1:2 keys_zone=cache:​10m inactive=7d max_size=700m;​ 
-</​code>​ 
- 
- 
-^ options ​                 ^ explications ​         ^ 
-| proxy_redirect ​         off | permet une réécriture de l'​adresse,​ inutile quand le serveur web ne se trouve pas sur la même machine physique | 
-| proxy_set_header | permet de modifier les entêtes ​ | 
-| proxy_hide_header | permet de cacher certaines entête | 
-| proxy_intercept_errors on | permet de controler les retours de code d'​erreurs du serveur web et de les modifier à la volé| 
-| proxy_buffering on | Si l'on désactive cette option le serveur arrière doit attendre que les données soient envoyées au client pour fermer sa connexion avec nginx | 
-| proxy_cache_min_uses ​      ​3 ​  | La ressource devra être demandée 3 fois avant d'​être mise en cache | 
-| proxy_cache_key | clé permettant de stocker des fichiers de plusieurs sites différents dans le même cache. Les noms de fichiers seront le md5 de cette combinaison | 
-| proxy_cache_path | indique le chemin vers le dossier de cache, organisation des dossiers ​ ( Si quelqu'​un a plus d'​information sur cette directive, sa participation est la bienvenue)| 
- 
- 
-=== Exemple de configuration d'un serveur web arrière === 
- 
-===== Voir aussi ===== 
- 
-  * **(en)** [[http://​bidule.org/​projects/​bidule/​|un autre tutoriel intéressant à propos du café sous linux]] 
-  * **(fr, en)** [[http://​www.bidule.org|Manuel d'​utilisation du logiciel Bidule]] 
-  * [[http://​forum.ubuntu-fr.org/​viewtopic.php?​id=64840|Discussion "​Tutoriel pour faire le café"​]] sur le forum ubuntu-fr 
- 
- 
----- 
-//​Contributeurs principaux : [[:​utilisateurs:​Miam Miam]].// 
  
  • tutoriel/reverse_proxy_nginx.1277992452.txt.gz
  • Dernière modification: Le 18/04/2011, 14:51
  • (modification externe)