Serveur web Nginx

Discussion dans 'Administration d'un site Web' créé par pspman80, 17 Septembre 2010.

  1. pspman80
    pspman80 WRInaute discret
    Inscrit:
    25 Février 2009
    Messages:
    59
    J'aime reçus:
    0
    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!
     
  2. IllusionPerdu
    IllusionPerdu WRInaute discret
    Inscrit:
    11 Mars 2006
    Messages:
    130
    J'aime reçus:
    0
    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...
     
  3. Julia41
    Julia41 WRInaute passionné
    Inscrit:
    31 Août 2007
    Messages:
    1 774
    J'aime reçus:
    0
    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):
    Code:
            $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.
     
  4. IllusionPerdu
    IllusionPerdu WRInaute discret
    Inscrit:
    11 Mars 2006
    Messages:
    130
    J'aime reçus:
    0
    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
     
  5. pspman80
    pspman80 WRInaute discret
    Inscrit:
    25 Février 2009
    Messages:
    59
    J'aime reçus:
    0
    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.
     
  6. Julia41
    Julia41 WRInaute passionné
    Inscrit:
    31 Août 2007
    Messages:
    1 774
    J'aime reçus:
    0
    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 :)
     
  7. pspman80
    pspman80 WRInaute discret
    Inscrit:
    25 Février 2009
    Messages:
    59
    J'aime reçus:
    0
    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é!
     
  8. Julia41
    Julia41 WRInaute passionné
    Inscrit:
    31 Août 2007
    Messages:
    1 774
    J'aime reçus:
    0
    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.
     
  9. pspman80
    pspman80 WRInaute discret
    Inscrit:
    25 Février 2009
    Messages:
    59
    J'aime reçus:
    0
    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 ;)
     
Chargement...
Similar Threads - Serveur web Nginx Forum Date
Serveurs web : tendance Microsoft ? Administration d'un site Web 6 Juin 2018
Localisation géographique serveur web / hébergement mutualisé Administration d'un site Web 26 Juin 2016
Serveur web chez soi certificat ssl possible ? Administration d'un site Web 20 Février 2016
Serveur web piraté Administration d'un site Web 14 Décembre 2013
Outil surveillance : site web sur off ou serveur down ? Administration d'un site Web 28 Mars 2013
Comment comprendre la charge d'un serveur web Apache Administration d'un site Web 22 Mars 2013
Adresse ip du serveur web et référencement Débuter en référencement 25 Janvier 2013
[sondage] Avez vous un module de décryptage sur votre serveur web ? Administration d'un site Web 24 Octobre 2012
Mise en place d'un serveur Websocket PHP sur Debian Administration d'un site Web 1 Avril 2012
Stocker des données sur le serveur à travers webservice Développement d'un site Web ou d'une appli mobile 10 Novembre 2011
Mise en place d'un serveur web Administration d'un site Web 14 Mars 2011
Installation serveur web + emailing Administration d'un site Web 4 Février 2011
demande d'informatin sur un serveur web Administration d'un site Web 14 Janvier 2011
Serveur web attaqué par un TROJAN ! Administration d'un site Web 20 Septembre 2010
Internet Explorer en hors ligne et web sur serveur local Développement d'un site Web ou d'une appli mobile 29 Juillet 2010
Microsoft Microsoft dévoile IIS Express, un serveur web gratuit dédié aux développeurs Le café de WebRankInfo 30 Juin 2010
Outils Webmasters Google, serveur a expiré. Crawl et indexation Google, sitemaps 1 Janvier 2010
Serveur web sur le port 8080 et référencement Débuter en référencement 4 Août 2009
Installer un webmail sur un autre serveur que celui de mail Administration d'un site Web 2 Juillet 2009
L'impact de l'adresse IP du serveur et de Outils Google pour Webmasters Débuter en référencement 7 Avril 2009