Serveur web Nginx

Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics


pspman80
WRInaute discret
WRInaute discret
 
Messages: 56
Inscription: 25 Fév 2009

Serveur web Nginx

Message le Ven Sep 17, 2010 10:10

Bonjour à tous,


Je suis en train de réflechir quant à la mise en place d'un reverse proxy pour l'un des sites dont je m'occupe.
L'idée est la suivante:

Faire tourner Apache2 avec Nginx en même temps.

Nginx s'occuperait de la gestion des fichiers statiques et Apache des fichiers dynamiques (voici un des liens que j'ai trouvé à ce sujet : http://www.papygeek.com/software/optimiser-son-serveur-web-avec-nginx/).

Tout cela est donc techniquement faisable et utilisé...

Ma problèmatique est la suivante.

J'ai plusieurs serveurs de fichiers que j'appelerais par exemple:
fichier1.siteweb.fr fichier2.siteweb.fr et fichier3.siteweb.fr

Les fichiers y sont stockés de façon aléatoire en fonction de la charge de chacun.

Je voudrais que lorsqu'un internaute demande l'url :
www.siteweb.fr/fichiers/monfichier.jpg

Une requete SQL soit lancée pour aller voir sur quel serveur le fichier monfichier.jpg est stocké pour aller ensuite l'afficher.

Ma question est donc comment faire pour qu'à chaque fois qu'un internaute demande un fichier je puisse lancer un script (avec l'url en parametre) qui ira vérifier sur quel serveur se trouve mon fichier.

Si vous avez d'autres solutions techniques n'hésitez pas!

Merci!


IllusionPerdu
WRInaute discret
WRInaute discret
 
Messages: 141
Inscription: 11 Mar 2006

Re: Serveur web Nginx

Message le Ven Sep 17, 2010 10:38

Ne pourrais-tu pas plus simplement avoir tous les fichiers sur les différents serveurs et faire un loadbalansing sur ces différents serveurs ? donc soit au niveau dns ou alors de ngnix ( http://wiki.nginx.org/NginxLoadBalanceExample )

Sinon il est possible de mettre fastcgi avec php sur le serveur ngnix...


Julia41
WRInaute passionné
WRInaute passionné
 
Messages: 1765
Inscription: 31 Aoû 2007

Re: Serveur web Nginx

Message le Ven Sep 17, 2010 10:52

Je rejoins l'avis de IllusionPerdu. Avoir tes fichiers partout te permettrait d'avoir du vrai load balancing.

Pour "copier" tes fichiers partout, je te conseille d'utiliser "incron" (incrontab) qui permet de lancer des crons en cas de modification de fichier.

Une requete SQL soit lancée pour aller voir sur quel serveur le fichier monfichier.jpg est stocké pour aller ensuite l'afficher.

Ca à mon avis, c'est un performance killer. Ca dépends un peu du type de requête, après bien sûr ça peut être caché.

Je voudrais que lorsqu'un internaute demande l'url :
www.siteweb.fr/fichiers/monfichier.jpg


J'utilise un peu ce principe là pour un site d'hébergement d'image.
-http://images.guiks.net/img/07-2010/242757705Capture.PNG
Si tu y vas sans referer, tu as des pubs (tu affiches en réalité le script img.php), si avec referer, le script img.php se charge uniquement d'afficher l'image à partir du bon serveur.

Moi c'est sous lighttpd, mais voici le rewrite que j'utilise (si ça peut t'aider dans ta réflexion):
Code: Tout sélectionner
        $HTTP["referer"] == "" {
                $HTTP["useragent"] =~ "(Android|iPhone|palm|BlackBerry)" {
                        url.rewrite-once = (
                                "^/img/(.*)$" => "/img.php?mob=yes&i=$1"
                        )
                }
                $HTTP["useragent"] !~ "(Android|iPhone|palm|BlackBerry)" {
                        url.rewrite-once = (
                                "^/img/(.*)$" => "/img.php?mob=no&i=$1"
                        )
                }
        }

Et comme tu vois, j'ai rajouté une gestion des pubs portables ;)
Voilà pour mon retour perso. Bon, après moi je suis un propagandiste de lighttpd, la conf (et surtout les rewrites) de nginx me font encore un peu peur. J'ai arrêté d'utiliser apache même pour le dynamique, d'après mes benchs, lighttpd reste toujours au minimum 20% plus performant.


IllusionPerdu
WRInaute discret
WRInaute discret
 
Messages: 141
Inscription: 11 Mar 2006

Re: Serveur web Nginx

Message le Ven Sep 17, 2010 11:11

En plus de cette manière c'est plus simple pour l'ajout ou la suppression d'un serveur.

* Pour la suppression : Effacer l'enregistrement du serveur DNS <= comme ça il n'y a plus que les autres serveurs d'actifs

* Pour l'ajout c'est un peu plus compliquer :
=> Copie des fichiers sur le nouveau serveur
=> Config du serveur web
=> Ajout de l'host dans le serveur dns


pspman80
WRInaute discret
WRInaute discret
 
Messages: 56
Inscription: 25 Fév 2009

Re: Serveur web Nginx

Message le Ven Sep 17, 2010 13:55

Merci à vous,

Le fonctionnement actuel des serveurs de fichiers est le suivant:

Des qu'un serveur est plein on en ajoute un nouveau. Et ce ainsi de suite...

Les serveurs de petite taille donc sont backupés plus régulièrement ce qui fait qu'en cas de crash les pertes sont minimes (certe en Raid, il n'y en aurait pas..). Ca je ne peux pas y toucher (indépendant de ma volonté!)

Je souhaite mettre en place cette solution de reverse proxy afin d'avoir un url propre (il n'y aura plus de sous domaine puisque pour acceder aux fichiers on fera siteweb.fr/fichiers/ par exemple (donc même domaine et meme sous domaine) et afin que les internautes ne tapent pas en direct dans les serveurs de stockage.


Julia41
WRInaute passionné
WRInaute passionné
 
Messages: 1765
Inscription: 31 Aoû 2007

Re: Serveur web Nginx

Message le Ven Sep 17, 2010 14:16

Du Squid pourrait faire l'affaire je suis en train de penser (bon l'install est crade quand même).
Sinon, je t'ai filé un début de piste. Le SELECT SQL pourrait avoir lieux dans une redirection.
Sinon, tu pourrais réorganiser tes fichiers différements avec de :
a-c => server 1
d-g => server 2
Voilà pour des pistes en vrac.

Autre solution pour augmenter la vitesse, tu stocks en local les fichiers les plus demandés (si tu utilises ton système de requete SQL tu peux vite faire des stats).

Voilà pour mes retours en vracs :)


pspman80
WRInaute discret
WRInaute discret
 
Messages: 56
Inscription: 25 Fév 2009

Re: Serveur web Nginx

Message le Lun Sep 27, 2010 9:09

Organiser les serveurs en fonction du nom n'est pas une bonne idée car beaucoup de fichiers commencent par ex par une voyelle par rapport à un z.

Je vais utiliser un lodbalancer pour cela ce sera une repartition plus équitable.

Concernant le serveur pour finir, je vais m'orienter vers un reverse proxy sur Apache sans cache (seul le lien privé du fichier sera mis en cache) pour l'instant car cela risquerait de devenir très imposant d'ici quelques temps.

Je vous remercie donc de m'avoir aidé!


Julia41
WRInaute passionné
WRInaute passionné
 
Messages: 1765
Inscription: 31 Aoû 2007

Re: Serveur web Nginx

Message le Lun Sep 27, 2010 11:09

Arf j'avais pas relu ce post avant de répondre à ton autre.
Pour ton :
Organiser les serveurs en fonction du nom n'est pas une bonne idée car beaucoup de fichiers commencent par ex par une voyelle par rapport à un z.

Bien entendu, mais après ça peut s'adapter, dans ton config.php, tu aurais simplement à stocker un array :
array (
'a' => 's1',
'b' => 's1',
etc...
Gros avantage, tu n'as aucune chose à mettre en place.
J'ignore où tu en es de ta réflexion mais tente de bien la choisir, j'avais déjà fait des mauvais choix, ça a été une merde pour mettre quelque chose de plus stable par la suite.


pspman80
WRInaute discret
WRInaute discret
 
Messages: 56
Inscription: 25 Fév 2009

Re: Serveur web Nginx

Message le Lun Sep 27, 2010 13:44

sauf que le jour ou tu veux rajouter des serveurs tu es bien embété. Tu va devoir déplacer des serveurs etc et donc les fichiers vont changer d'adresse, et donc très mauvais pour le référencement par exemple :/

Pour la suite de la reflexion, j'ai un autre post (reverse proxy) en cours ;)


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Formation recommandée sur ce thème :

Formation Google Analytics : en 2 jours, apprenez comment exploiter l'essentiel des possibilités de l'outil de mesure d'audience de Google. Formation animée par les experts Google Analytics de Ranking Metrics.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :

Consultez la description détaillée des produits ou services de Google suivants : Google Web Accelerator

  • Analyser la classe C de l'adresse IP
    Cet outil vous permet de vérifier si plusieurs sites sont hébergés sur la même classe C (adresse IP du serveur).
  • Test HTTP header
    Cet outil vous permet de connaître le code HTTP renvoyé par le serveur pour une page donnée.


Qui est en ligne

Utilisateurs parcourant ce forum: Google [Bot] et 0 invités