Serveur web Nginx
9 messages
• Page 1 sur 1
Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics
-

pspman80 - WRInaute discret

- Messages: 56
- Inscription: 25 Fév 2009
Serveur web Nginx
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!
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

- Messages: 141
- Inscription: 11 Mar 2006
Re: Serveur web Nginx
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...
Sinon il est possible de mettre fastcgi avec php sur le serveur ngnix...
-

Julia41 - WRInaute passionné

- Messages: 1765
- Inscription: 31 Aoû 2007
Re: Serveur web Nginx
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.
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é.
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):
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.
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

- Messages: 141
- Inscription: 11 Mar 2006
Re: Serveur web Nginx
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
* 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

- Messages: 56
- Inscription: 25 Fév 2009
Re: Serveur web Nginx
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.
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é

- Messages: 1765
- Inscription: 31 Aoû 2007
Re: Serveur web Nginx
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
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

- Messages: 56
- Inscription: 25 Fév 2009
Re: Serveur web Nginx
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é!
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é

- Messages: 1765
- Inscription: 31 Aoû 2007
Re: Serveur web Nginx
Arf j'avais pas relu ce post avant de répondre à ton autre.
Pour ton :
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.
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

- Messages: 56
- Inscription: 25 Fév 2009
Re: Serveur web Nginx
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
Pour la suite de la reflexion, j'ai un autre post (reverse proxy) en cours
9 messages
• Page 1 sur 1
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 :
- Optimisation serveur : nginx + eaccelerator + vanish
- 1 serveur Web et 1 serveur Mail pour le même domaine
- Serveur Web et Serveur RED 5 distants
- Hotlink et nginx
- Nginx rewriting site1/22 -> site2?22
- convertir QUERY_STRING sur nginx
- Nginx vers apache erreur
- Equivalant cband sur Nginx
- Nginx, equivalent de RewriteRule et HTTP_REFERER
- Nginx sur un Corei5 4x 2.66+ GHz
- Comment créer une page web en PHP - 04-08-2008
- Script de mise en cache des pages (PHP MySQL) - 09-08-2010
- Comparer les classes C de 2 adresses IP - 03-09-2004
- Tous les outils à connaître pour analyser un site - 16-09-2004
- Redirection (PHP, JavaScript, serveur...) - 04-07-2003
- Changements de nom de domaine et TrustRank - 18-10-2005
- Aperçu des différents types de redirection - 04-08-2008
- Votre site doit toujours être accessible rapidement : conseil n°7 en référencement - 04-08-2008
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
