[article] Faire évoluer son architecture serveur

Discussion dans 'Administration d'un site Web' créé par fandecine, 4 Novembre 2007.

  1. fandecine
    fandecine WRInaute passionné
    Inscrit:
    2 Avril 2005
    Messages:
    1 873
    J'aime reçus:
    0
    Tout les webmasters ont été un jour confronté au problème suivant : "mon site est maintenant à l'étroit sur son hébergement actuel, quelle solution choisir ?"

    On débute sur un mutualisé, puis on passe sur un petit dédié, puis un dédié plus gros et puis ...

    Cet article à pour objectif de proposer des solutions d'évolutions d'architectures serveur en tenant compte des performances et des coûts.

    En matière de terminologie, pour la clarté de l'article, j'appellerais "serveur" la machine physique (l'ordinateur) et "service" le logiciel (l'application). Je prendrais également pour hypothèse que le serveur est un serveur LAMP (linux + apache + mysql + php)

    Avant de choisir une architecture "serveur" il faut avant tout définir les "services" dont on a besoin, les principaux étant, dans le cas qui nous intéresse, le "service web", le "service mail", le "service ftp", le "service base de données".
    Je ne parlerais pas du "service ssh", indispensable pour se connecter sur son "serveur" à distance, ni des "services" de type système.

    Nous avons donc notre "serveur" qui héberge ces "services" et nous sommes à l'étroit en raison du la charge (en gros du trafic) et nous n'avons pas les moyens de prendre un serveur plus gros et plus cher ! que faire ?

    1 ère solution, l'optimisation

    Si le serveur est un serveur clé en main, les différents "services" installés sont configurés de façon disons, universelle, pour répondre aux besoins du plus grand nombre. Il est donc intéressant de regarder, "service" par "service" aec quelles options ils sont installés et compilés afin de supprimer ce qui ne sert pas.

    Pour le "service" web, si c'est apache, reportez vous à mes articles optimiser son dédié et bien configurer apache

    Pour le "service" base de données, si c'est mysql, un petit coup d'oeil à l'excellente doc en ligne de mysqlvous permettra de "tuner" efficacement votre "service" mysql pour grappiller quelques ressources.

    En ce qui concerne le "service ftp", posez-vous la question de son utilité (hé oui! j'ai connu bien des cas ou il ne servait à rien !) même si votre site propose aux utilisateurs d'uploader des fichier, il existe des alternatives à ftp.

    Pour le service mail, on distingue le "smtp" et le "pop" (ou l'imap). Si votre serveur doit envoyer des mails (contact, newsletters) le smtp est nécessaire. Par contre, posez-vous la question de l'utilité du pop, vous pouvez trés bien héberger vous boites aux ailleurs à moindre coût.

    Enfin pour PHP, vous pouvez bien entendu optimiser votre code, installer un cache d'opcode etc ... Mais le résultat le plus spectaculaire sera obtenu en recompilant PHP aprés avoir supprimer l'inutile ! J'en voie qui froncent les sourcils d'un air dubitatif. Je m'explique par l'exemple:

    Utilisez-vous les fonctions wddx_xxxxxxx ? Non, alors vous n'avez pas besoin de la librairie WDDX.
    Utilisez-vous les fonctions mhash_xxxxxx ? Non, alors vous n'avez pas besoin de la librairie HASH.
    Utilisez-vous les fonctions ftp_xxxxxx ? Non, alors vous n'avez pas besoin de la librairie FTP.

    etc ....

    Une fois identifiées les librairies inutiles (là, il faut regarder la doc PHP) il vous suffit de recompiler PHP en désactivant le support des dites librairies (par exemple --disable-ftp --disable-wddx etc ...)

    Le gain en occupation mémoire des processus apache-php est considérable (j'ai diminué de 60% cette taille de processus sur certaines config!)


    2 éme solution, 2 serveurs valent mieux qu'un (à coût constant)

    je vais prendre un exemple rapide que j'ai expérimenté (je tiens avant tout à préciser que les hébergeurs cités le sont à titre d'exemple et la qualité de leurs services respectifs n'est en aucun cas débatus dans cet article)

    2 dédibox (processeur C7 2 Ghz, 160 Go disque et 1 Go de mem) se sont avérés plus performant qu'un superplan 2007 + (à 'époque Core2duo 2x1,8 Ghz , 2 Go de mem et 160 Go de disque) pour un coût inférieur de 30 %. Le gain de charge était voisin de 50 %.

    Dans ce cas précis, l'architecture était la suivante:

    Serveur 1 : Apache + PHP (serveur de pages web)
    Serveur 2 : Mysql + lighttpd(serveur mysql et serveur d'image).

    Les raisons ? Tout d'abord, apache est un gros consommateur de processus donc de mémoire. Mysql est lui un gros consommateur de CPU, et de mémoire. La solution de les installer sur des machines différente est bien connue et a fait ses preuves.

    La petite innovation de la solution étant de faire tourner un serveur d'image sur la même machine que mysql. Le choix du service web s'étant porté sur lighttpd en raison de sa faible trace mémoire et de ses meilleures performances q'apache pour servir des fichiers "statiques". D'autres parts, notre apache du serveur 1, ainsi délivré de la charge de servir des images avec des processus surdimensionnés pour cela s'en trouvait bien mieux.
    Enfin, les deux serveurs se backupaient l'un l'autre (avec une tache cron rsync en ssh) , histoire d'utiliser l'espace disque libre.

    Actuellement, je travaille à la mise en place d'une architecture identique à deux serveurs avec en plus un service de streaming vidéos (avec conversion automatique des formats vidéos)

    Pour conclure, si malgré tout vous êtes à l'étroit, il reste encore la solution de la répartition de charge multiserveurs (load-balancing) mais une telle architecture sort du cadre de cet article et de ce forum. :wink:

    [ j'édite ce post pour apporter une précision suite à un MP: ]

    En ce qui concerne PHP, certains modules sont compilés par défaut. Si ils sont innutiles il faut les désactiver à la compilation. Ensuite, si PHP est installé par apt-get (debian) ou yum (fedora) ou autre, il n'y a qu'a regarder avec phpconfig() pour voir l'ensemble des modules compilés avec php et trés souvant il y en a beaucoup d'inutiles.
     
  2. Monty973
    Monty973 WRInaute passionné
    Inscrit:
    21 Mars 2006
    Messages:
    1 160
    J'aime reçus:
    1
    Ben merci fandecine
     
  3. Mumuri
    Mumuri WRInaute passionné
    Inscrit:
    3 Novembre 2004
    Messages:
    1 410
    J'aime reçus:
    0
    pour compléter , lighttpd peut aussi s'installer en local sur un dédié et vous pouvez ensuite rediriger les requetes pour un sous domaine type "images.monsite.com" sur ce serveur web avec le mod proxy d'apache.

    utile si vous avez une grosse gallérie d'images et pas les moyens de vous payez un gros serveur

    +1 pour la reco
     
  4. Ohax
    Ohax WRInaute accro
    Inscrit:
    5 Juillet 2004
    Messages:
    4 900
    J'aime reçus:
    0
    Bon article !
     
  5. fandecine
    fandecine WRInaute passionné
    Inscrit:
    2 Avril 2005
    Messages:
    1 873
    J'aime reçus:
    0
    A ce sujet, il faudrait que je fasse des test avec apache en serveur principal et mod-proxy qui redirige sur lighttpd pour le statique et l'inverse, lighttpd en principal qui redirige vers apache pour le php, voir aussi lighttpd seul avec php tournant en cgi.

    Je n'ai aucune idée à priori de la solution la plus efficace.

    J'utilise déjà des config avec deux apaches (un avec php, un pour le statique) pour des serveurs ou je mutualise plusieurs clients et ça marche trés bien avec un gain de performence appréciable.
     
  6. tonguide
    tonguide WRInaute passionné
    Inscrit:
    28 Novembre 2003
    Messages:
    1 158
    J'aime reçus:
    0
    Auriez-vous un site référence "pour les nuls" puis un site pour approndir (ou les 2 en 1) pour apprendre à installer et gérer un serveur ?

    Je désire apprendre d'ici peu à gérer moi meme mes serveurs, seulement j'aimerai un guide pour pas trop me planter (sachant que les sites seront en prod, je peux pas dire de tout planter).

    On a souvent des informations intéressantes (comme ici) mais vue de l'extérieur, pas simple à mettre en pratique. Ou sinon, à l'inverse, on a des infos concrètes mais qui sont expliqués pour ceux qui connaissent déjà et là, c'est du chinois.
     
  7. Julia41
    Julia41 WRInaute passionné
    Inscrit:
    31 Août 2007
    Messages:
    1 774
    J'aime reçus:
    0
    Installation complète : -http://olange.developpez.com/articles/debian/installation-serveur-dedie/
    Les commandes de base de Linux : -http://www.linux-france.org/article/debutant/debutant-linux.html

    Si tu veux un conseil, installe toi une petite Knoppix en local à partir du LiveDVD (Knoppix est une debian en mode bureau assez agréable [avis perso])... Et test 2-3 commandes...

    L'article de fandecine est excellent, mais bon, il aurait dû commencer par "prendre un dédié si vous connaissez un minimum Linux et son environnement"...

    Le premier guide dont je t'ai donné le lien est parfait si tu prends un serveur dédié sous une Debian de base... (Juste l'install de vsftpd que je remplace par proftpd). Et te permet d'avoir un serveur parfaitement stable.

    Si les sites sont en prod comme tu le dis, je te conseil aussi de prendre la box la moins cher que tu trouveras, voir un Virtuel pour t'amuser et surtout pour apprendre...
     
  8. tonguide
    tonguide WRInaute passionné
    Inscrit:
    28 Novembre 2003
    Messages:
    1 158
    J'aime reçus:
    0
    Ok merci pour les conseils.

    Je pense effectivement que ça serait plus raisonnable de prendre un mini dédié (voir un PC chez moi ?) pour apprendre à gérer tout ça.

    Je met ces 2 sites en favoris donc !
     
  9. poupee
    poupee WRInaute discret
    Inscrit:
    29 Juin 2007
    Messages:
    97
    J'aime reçus:
    0
    Bonjour
    J'ai trouvé cette série d'articles très intéressante.

    J'ai un serveur dédié avec une configuration qui commence à dater:
    mysql Client API version 4.0.24
    PHP Version 4.3.10-22
    Apache/2.0.54 (Debian GNU/Linux)

    Sur ce serveur j'ai 2 vieux scripts que je souhaite garder: phpbb en version 2.03 et un vieux lifetype 1.0.3.
    Bien sur ces scripts mêmes vieux ont été mis à jours contre quelques hack, mais ils gardent leur config d'origine.

    Bref, mon hosteur me propose de basculer mon serveur avec les derniers mysql 5. que faut-il craindre ? existe-il une possibilité à l'installation de garder un mysql plus compatibles avec les anciens scripts ?
    Merci.
     
  10. Ron56
    Ron56 WRInaute occasionnel
    Inscrit:
    20 Novembre 2005
    Messages:
    460
    J'aime reçus:
    0
    Op une reco , très intéréssant ;)
     
  11. fandecine
    fandecine WRInaute passionné
    Inscrit:
    2 Avril 2005
    Messages:
    1 873
    J'aime reçus:
    0
    UUUUUH! sur un site en production avec des scripts non développé par moi, je ne prendrais pas le risque de passer mysql de 4 à 5 sans faire de test préalable.

    Pour cela, j'ai un serveur de test (un kimsufi) que je martyrise souvant (installations, re-installations, compilations etc ..). Mais cela peut se faire avec un vieux pc, mais pose toi d'abord la question "est ce bien necessaire ?". Ta config est pas si vieille que ça aprés tout.
     
  12. Rahir
    Rahir WRInaute discret
    Inscrit:
    24 Janvier 2006
    Messages:
    228
    J'aime reçus:
    2
    Très bon article ça, intéressant ! Ca va me servir dès que j'aurais l'occasion de passer sur un serveur dédié un jour...!

    Merci fandecine :wink:

    +1
     
  13. datch
    datch WRInaute impliqué
    Inscrit:
    16 Juin 2006
    Messages:
    895
    J'aime reçus:
    1
    plus 1

    Merci, tu m'as donné la solution qui m'empêche de dormir la nuit
     
  14. Ohax
    Ohax WRInaute accro
    Inscrit:
    5 Juillet 2004
    Messages:
    4 900
    J'aime reçus:
    0
    Php4 est voué à disparaitre dans quelques mois donc... ;-)
     
  15. fandecine
    fandecine WRInaute passionné
    Inscrit:
    2 Avril 2005
    Messages:
    1 873
    J'aime reçus:
    0
    Ma voiture n'est plus fabriquée depuis 12 ans et pourtant, je l'utilise toujours :wink:

    Lorsque l'on a un serveur en production qui marche, donne satisfaction et qu'il n'y a pas de problèmes de sécurité on y touche pas a moins de tester la nouvelle architecture au préalable sur une autre machine sinon on prend le risque de l'interruption de service qui peut durer ... un certain temps !
     
  16. Ohax
    Ohax WRInaute accro
    Inscrit:
    5 Juillet 2004
    Messages:
    4 900
    J'aime reçus:
    0
    Tourner sur une architecture qui n'a plus droit aux mises à jour de sécurité n'est pas moins fou.
     
  17. fandecine
    fandecine WRInaute passionné
    Inscrit:
    2 Avril 2005
    Messages:
    1 873
    J'aime reçus:
    0
    c'est pour cela que dis (je me cite)
     
  18. dabYo
    dabYo Nouveau WRInaute
    Inscrit:
    25 Avril 2007
    Messages:
    47
    J'aime reçus:
    0
    Bonsoir :)

    Alors déjà je tenais à te rémercier pour tes précédents topics, notament ceux sur Apache2 qui m'ont permi de configurer la bête alors que je venais de prendre ma première dedibox, il y a de ça quelques mois déjà. Bien qu'à l'époque je n'avai spas tout compris, c'est vraiment intuitif, merci ;)

    Avec l'augmentation de mon traffic j'ai décidé de migrer sur un duo super plan + (peut être une mauvaise idée, mais bon, l'avenir me le dira :D) Seulement, il est très dûr de trouver des conseils quant à l'optimisation de mysql lorsqu'il tourne tout seul sur une bébête à 2go de ram.

    Vu que tu semble l'avoir fait pour une dedibox, aurai tu des conseils pour que mysql utilise à 100% les capacités de mon serveur ?
     
  19. tofm2
    tofm2 WRInaute passionné
    Inscrit:
    9 Avril 2005
    Messages:
    1 392
    J'aime reçus:
    0
  20. fandecine
    fandecine WRInaute passionné
    Inscrit:
    2 Avril 2005
    Messages:
    1 873
    J'aime reçus:
    0
    Bonjour dabYo,

    Je suis en train de faire l'inverse de ce que tu veux faire, c'est à dire passer d'un core2duo avec 2Go de ram de chez OVH vers 2 Dedibox !

    En effet, comme je l'indique dans cet article, le deport de MySQL sur un deuxième serveur augmente considérablement les performences ce qui permet d'utiliser des serveurs moins puissants. Ensuite, le cout de deux dédibox (même de 3 !) est inferieur au coût de mon serveur OVH actuel.
    En plus, avec deux serveurs, je peux mettre en place des backups croisés ce qui me garanti contre des pertes de données. Enfin, pour en avoir fait l'expérience, la BP chez dédibox est bien meilleur que celle fournie par OVH avec mon serveur.

    Sinon, pour répondre à ta question sur MySQL, c'est difficile de faire un diagnostic sans éléments mais les règles à respecter sont toujours les mêmes :

    1 - Eviter d'utiliser les binaires standarts afin de pouvoir "tuner" sa configuration et supprimer l'inutile (c'est bon pour apache, mysql et php)
    2 - Eviter de faire faire plusieurs fois la même opération à mysql, c'est à dire utiliser un système quelconque de cache (le mien est pas mal :wink: )
    3 - Virer du serveur tout ce qui est inutile à sa fonction principale : servir des pages web
    4 - Bien configurer ses applications et ne pas hesiter à tester (chaque utilisation étant unique, la config universelle d'un application n'existe pas!)
    5 - Enfin, ne pas hésiter à perdre une heure pour consulter les docs car ce sont des heures gagnées à ne pas chercher dans l'urgence d'ou vient un problème.

    Pour des conseil moins généraux et plus ciblés, il me faudrait beaucoup plus d'infos :wink:
     
  21. dabYo
    dabYo Nouveau WRInaute
    Inscrit:
    25 Avril 2007
    Messages:
    47
    J'aime reçus:
    0
    Disons que mon parcours est plutôt bizarre, car j'utilise un serveur aux USA très peu cher (et que je ne peux pas administrer), une dedibox, et un chez OVH. Je voulais tout rassembler pour ne plus avoir ce temps de latence entre les serveurs, donc j'ai choisi d'oublier celui aux US et la Dedibox au profit d'un deuxième superplan +.

    - Donc il s'agirait pour le serveur MySQL d'un Intel(R) Core(TM)2 CPU 6300 @ 1.86GHz à 2go de ram.
    - Et pour Apache2, ce serait un Intel(R) Core(TM)2 Duo CPU E6550 @ 2.33GHz avec 2go de ram ici aussi.

    Bien entendu les serveurs ne font que ça, j'envisage après moi aussi de faire héberger mes images par le serveur qui gère MySQL. Au niveau BP j'ai pas de problème, c'est surtout PHP et MySQL qui me bouffent.
     
  22. fandecine
    fandecine WRInaute passionné
    Inscrit:
    2 Avril 2005
    Messages:
    1 873
    J'aime reçus:
    0
    avec 2 core2duo et 2 x 2 Go de mem tu peux voir venir :wink:

    Pour le serveur avec apache et PHP, je te conseille de compiler à partir des sources avec les module apache en statique (tu dois savoir exeactement les modules dont tu as besoin) et de desactiver toutes les extension PHP que tu n'utilise pas, tes processus apache seront plus leger.
    (desactive le debug également)
    Pour apache je te conseillerais plutôt apache 1.3 plutôt que apache 2 car les avancées d'apache2 ne sont pas utilisables avec PHP et de plus apache 1.3 est plus facile à tuner et légérement moins gourmand en memoire, mais là, c'est du détail.

    Un cache d'OpCode serait le bienvenue pour PHP. Perso, j'utilise Zend Optimizer bien qu'il existe plus performant mais il est trés stable et ne me cause pas de soucis.

    Pour le deuxiéme serveur, veille à utiliser la même version de MySQL que le client MySQL du premier serveur. Pour servir les images, lighttpd est trés trés performant et a une trés faible trace mémoire ce qui devrait permettre à MySQL de s'épanouir pleinement :wink:

    Dernier conseil si tu utilises les fonction Images de PHP (avec GD2) occasionellemnt, débrouilles toi pour les installer sur le serveur 2 (celui de Mysql) avec un PHP en mod_cgi. Cela diminuera considérablement le poids de tes processus apache.

    Voilà, voilà.

    Je suis en train de terminer ma config deux serveur avec en plus, le streaming viédo et je devrais pouvoir cimmuniquer des comparatifs de performance entre les deux solutions sous peu ...
     
  23. bastos5
    bastos5 Nouveau WRInaute
    Inscrit:
    19 Octobre 2007
    Messages:
    41
    J'aime reçus:
    0
    Bonjour Fandecine,
    as-tu réaliser les tests et fais le comparatif de performances de ces deux types d'architectures (2 dedibox ou un serveur core 2 duo plus puissant)?
    Car je suis tres interessés par les résultats de ces tests.

    Merci
     
  24. tofm2
    tofm2 WRInaute passionné
    Inscrit:
    9 Avril 2005
    Messages:
    1 392
    J'aime reçus:
    0
    De toute manière, à partir d'un certain traffic, il faut toujours tendre vers la clusterisation à outrance plus que vers des serveurs hyperpuissants.
     
  25. sietjp
    sietjp WRInaute occasionnel
    Inscrit:
    14 Décembre 2003
    Messages:
    476
    J'aime reçus:
    1
    Merci fan decine, prochaine étape, nous expliquer comment faire du loadbalancing comme tu l'évoue dans l'article avec plus de 2 serveurs ce coup ci :)
    loadbalncing de base de donnée aussi si possible car en ce qui me concerne, ça a toutjours été la base de donnée mon problème principal, c'est beaucoup plus consomateur en cpu/mémoire qu'un apache bien optimisé.
     
  26. sietjp
    sietjp WRInaute occasionnel
    Inscrit:
    14 Décembre 2003
    Messages:
    476
    J'aime reçus:
    1
    Retour d'expérrience de recompilation PHP suite au post de fandecine :

    Avant recompil de PHP : taille moyenne des process apache : 40M

    Après recompil de PHP : taille moyenn des process apaches : 16M !!!!!!!!!!!!!!!!!!!

    Un grand merci à fandecine pour ce post.

    Si ça peut aider voici la igne de configure que j'ai utilisé, mais attention ça dépend vraiment de votre utilisation de php :

    Code:
    ./configure --with-apxs2=/usr/sbin/apxs --with-mysql --enable-mbstring --disable-ftp --disable-wddx --without-iconv --disable-json --disable-pdo --disable-posix --disable-reflection --disable-spl --without-sqlite --without-pear --disable-xml --disable-libxml --disable-simplexml --disable-xmlreader --disable-xmlwriter --disable-zip --disable-dom
    
    A noter que pour la plupart des utilisations on peut aussi désactiver mbstring si son site ne traite pas de caractère unicode.

    Wow, j'en reviens toujours pas...
     
  27. raljx
    raljx WRInaute passionné
    Inscrit:
    10 Juillet 2006
    Messages:
    2 022
    J'aime reçus:
    0
    Une solution a mon gout plus performante qu'un load balancing sur des BDD est d'avoir 2 mysql (1 maitre et un esclave) le maitre synchronise sur l'esclave, on fait les requestes INSERT et UPDATE sur le maitre et les SELECT sur le slave, on gagne enormement en perf avec un tres gros trafic (+100 000 VU/mois). Le loadbalancing etant plus optimum pour des gestions de charges sur des serveurs web.
     
  28. fandecine
    fandecine WRInaute passionné
    Inscrit:
    2 Avril 2005
    Messages:
    1 873
    J'aime reçus:
    0
    Je vois que tu utilise apache avec les modules chargés en dynamique, tu peux aussi recompiler apache avec ses modules en statique (aprés bien sur avoir sélectionné les modules utiles ! :wink: ) et tu diminuera encore la taille de tes process apache.

    Par curiosité, peut tu nous donner l'extrait de ta conf apache qui décrit les modules à charger ?
     
  29. mahefarivony
    mahefarivony WRInaute accro
    Inscrit:
    14 Octobre 2002
    Messages:
    8 081
    J'aime reçus:
    0
    Excellents articles mais si je peux me permettre, tout ceci c'est "tout va pour le mieux dans le meilleur des mondes"

    ... et malheureusement, ça marche un temps et après les emmerdes surviennent

    so, comment faire :

    - pour sécuriser ses scripts
    - pour blinder sa messagerie
    - sécuriser ses accès ssh
    - sécuriser ses comptes

    etc, etc.
     
  30. fandecine
    fandecine WRInaute passionné
    Inscrit:
    2 Avril 2005
    Messages:
    1 873
    J'aime reçus:
    0
    tu peux développer mahe, je ne vois pas ou tu veux en venir !?
     
  31. sietjp
    sietjp WRInaute occasionnel
    Inscrit:
    14 Décembre 2003
    Messages:
    476
    J'aime reçus:
    1
    Oui, suite à mon post je me suis documenté et j'ai trouvé une documentation sql extra en anglais qui explique comment utiliser l'architecture maitre esclave que tu décris : http://www.mysql.com/why-mysql/white-pa ... aleout.php

    Comment vois tu que j'utilises apache avec des modules dynamiques (c'est vrai mais je comprends pas comment tu peux le voir avec mon message) ?


    Sinon je complète mon retour d'expérience. En fait j'étais bien content au début mais j'ai passé ma journée à recomipler php car petit à petit je me suis rendu compte qu'il y avait certaines fonctions que j'utilisais s'en le savoir.

    J'ai bien lutté pour remettre en route eAccelerator, recompiler les libjpeg et freetype2 pour gd et jpgraph.

    Mais c'est une expérience trés intéressante qui apprend beaucoup de chose.

    Je me suis notamment rendu compte que c'était eAccelerator qui gonflait la taille des thread apache.

    Au final, la recompilation de php m'a fait gagné 7M contrairement à ce que je disais dans mon premier post.

    Je reposte mon .configure final
    Code:
    ./configure --with-apxs2=/usr/sbin/apxs --with-mysql --with-config-file-path=/etc --enable-mbstring --disable-ftp --disable-wddx --disable-filter --without-iconv --disable-json --disable-hash --disable-tokenizer --disable-pdo --disable-posix --disable-reflection --disable-spl --without-sqlite --without-pear --disable-xml --disable-libxml --disable-simplexml --disable-xmlreader --disable-xmlwriter --disable-zip --disable-ctype --disable-dom --with-gd --with-jpeg-dir=/usr --with-png-dir=/usr --enable-gd-native-ttf --with-ttf=/usr --with-freetype-dir=/usr --disable-magic-quotes
    Et voici pour apache :
    Code:
    LoadModule auth_basic_module modules/mod_auth_basic.so
    #LoadModule auth_digest_module modules/mod_auth_digest.so
    LoadModule authn_file_module modules/mod_authn_file.so
    #LoadModule authn_alias_module modules/mod_authn_alias.so
    #LoadModule authn_anon_module modules/mod_authn_anon.so
    #LoadModule authn_dbm_module modules/mod_authn_dbm.so
    #LoadModule authn_default_module modules/mod_authn_default.so
    LoadModule authz_host_module modules/mod_authz_host.so
    LoadModule authz_user_module modules/mod_authz_user.so
    #LoadModule authz_owner_module modules/mod_authz_owner.so
    LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
    #LoadModule authz_dbm_module modules/mod_authz_dbm.so
    #LoadModule authz_default_module modules/mod_authz_default.so
    #LoadModule ldap_module modules/mod_ldap.so
    #LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
    #LoadModule include_module modules/mod_include.so
    LoadModule log_config_module modules/mod_log_config.so
    #LoadModule logio_module modules/mod_logio.so
    #LoadModule env_module modules/mod_env.so
    #LoadModule ext_filter_module modules/mod_ext_filter.so
    #LoadModule mime_magic_module modules/mod_mime_magic.so
    #LoadModule expires_module modules/mod_expires.so
    #LoadModule deflate_module modules/mod_deflate.so
    #LoadModule headers_module modules/mod_headers.so
    #LoadModule usertrack_module modules/mod_usertrack.so
    LoadModule setenvif_module modules/mod_setenvif.so
    LoadModule mime_module modules/mod_mime.so
    #LoadModule dav_module modules/mod_dav.so
    #LoadModule status_module modules/mod_status.so
    #LoadModule autoindex_module modules/mod_autoindex.so
    #LoadModule info_module modules/mod_info.so
    #LoadModule dav_fs_module modules/mod_dav_fs.so
    #LoadModule vhost_alias_module modules/mod_vhost_alias.so
    LoadModule negotiation_module modules/mod_negotiation.so
    LoadModule dir_module modules/mod_dir.so
    #LoadModule actions_module modules/mod_actions.so
    #LoadModule speling_module modules/mod_speling.so
    #LoadModule userdir_module modules/mod_userdir.so
    LoadModule alias_module modules/mod_alias.so
    LoadModule rewrite_module modules/mod_rewrite.so
    #LoadModule proxy_module modules/mod_proxy.so
    #LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
    #LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
    #LoadModule proxy_http_module modules/mod_proxy_http.so
    #LoadModule proxy_connect_module modules/mod_proxy_connect.so
    #LoadModule cache_module modules/mod_cache.so
    #LoadModule suexec_module modules/mod_suexec.so
    #LoadModule disk_cache_module modules/mod_disk_cache.so
    #LoadModule file_cache_module modules/mod_file_cache.so
    #LoadModule mem_cache_module modules/mod_mem_cache.so
    #LoadModule cgi_module modules/mod_cgi.so
    #
    # The following modules are not loaded by default:
    #
    #LoadModule cern_meta_module modules/mod_cern_meta.so
    #LoadModule asis_module modules/mod_asis.so
    LoadModule php5_module        /usr/lib/httpd/modules/libphp5.so
    
     
  32. fandecine
    fandecine WRInaute passionné
    Inscrit:
    2 Avril 2005
    Messages:
    1 873
    J'aime reçus:
    0
    c'est cette option de ton configure : --with-apxs2=/usr/sbin/apxs :wink:

    Pour ce qui est de la taille de tes processus apache, il y a aussi GD, Freetype, libjpg etc ... tout ce qui concerne les librairies graphiques qui plombe les processus.

    Personellement, je ne les utilise que sur le serveur secondaire (celuis avec mysql et les images). C'est ce serveur qui abrite mes outils d'admin et qui effectuent les traitement d'images. Le serveur de principal est ainsi "allégé". De plus il ne sert que des fichier dynamiques (php) et un seul par connection (keepalive off).
    Du coup j'ai essayé de patcher apache avec lingerd pour liberer la connection encore plus rapidement mais j'ai une erreur lors de l'application du patch. J'ai maillé à l'auteur lingerd et j'attend la réponse car je n'arrive pas à trouver d'ou vient l'erreur :cry: Mais cela marche de toute façons trés trés bien :D


    Ensuite, je n'utilise pas eaccerator, mais Zend optimiser + Memcache qui est un daemon de gestion de memoire partagé. Bien entendu, la gestion de cette mémoire partagée n'est pas automatique mais écrite dans mon code.

    Voici un extrait de la liste des processus du serveur principal :

    Code:
    www      13319  0.0  0.4  76796  4992 ?        S    Jan09   0:00 /usr/local/apache/bin/httpd
    www      13320  0.0  0.4  76796  4588 ?        S    Jan09   0:00 /usr/local/apache/bin/httpd
    www      13321  0.0  0.4  76796  4556 ?        S    Jan09   0:00 /usr/local/apache/bin/httpd
    www      13322  0.0  0.4  76796  4576 ?        S    Jan09   0:00 /usr/local/apache/bin/httpd
    www      13323  0.0  0.4  76796  4576 ?        S    Jan09   0:00 /usr/local/apache/bin/httpd
    www      13324  0.0  0.4  76796  4996 ?        S    Jan09   0:00 /usr/local/apache/bin/httpd
    www      13325  0.0  0.4  76796  4592 ?        S    Jan09   0:00 /usr/local/apache/bin/httpd
    www      13326  0.0  0.4  76796  4604 ?        S    Jan09   0:00 /usr/local/apache/bin/httpd
    www      13327  0.0  0.4  76796  4580 ?        S    Jan09   0:00 /usr/local/apache/bin/httpd
    www      13328  0.0  0.4  76796  4984 ?        S    Jan09   0:00 /usr/local/apache/bin/httpd
    www      13329  0.0  0.4  76796  4992 ?        S    Jan09   0:00 /usr/local/apache/bin/httpd
    www      13330  0.0  0.4  76796  4996 ?        S    Jan09   0:00 /usr/local/apache/bin/httpd
    www      13331  0.0  0.4  76796  4992 ?        S    Jan09   0:00 /usr/local/apache/bin/httpd
    www      13332  0.0  0.4  76796  4984 ?        S    Jan09   0:00 /usr/local/apache/bin/httpd
    www      13333  0.0  0.4  76796  4580 ?        S    Jan09   0:00 /usr/local/apache/bin/httpd
    www      13334  0.0  0.4  76796  5004 ?        S    Jan09   0:00 /usr/local/apache/bin/httpd
    
    Et du serveur secondaire :

    Code:
    www      18703  0.0  0.4  11052  4460 ?        S    Jan11   0:00 /usr/local/bin/php-cgi
    www      18704  0.0  0.4  11052  4460 ?        S    Jan11   0:00 /usr/local/bin/php-cgi
    www      18705  0.0  0.4  11056  4476 ?        S    Jan11   0:00 /usr/local/bin/php-cgi
    www      18706  0.0  0.4  11056  4404 ?        S    Jan11   0:00 /usr/local/bin/php-cgi
    www      18707  0.0  0.4  11052  4348 ?        S    Jan11   0:00 /usr/local/bin/php-cgi
    www      23965  0.0  0.2  38452  2524 ?        Sl   06:25   0:00 /usr/local/sbin/lighttpd 
    root       30767  0.0  0.1  3660  1292 ?          S    2007    0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe
    mysql    30794  0.1  6.3  365380 65080 ?      Sl   2007    29:18 /usr/local/mysql/libexec/mysqld
    www      31000  0.0  0.3  10964  3996 ?        Ss   2007    0:00 /usr/local/bin/php-cgi
    
    Chacun des serveurs ayant 1Go de mem. :D
     
  33. Ron56
    Ron56 WRInaute occasionnel
    Inscrit:
    20 Novembre 2005
    Messages:
    460
    J'aime reçus:
    0
    Hé ben on apprend des choses :eek:

    Fandecine aurait tu un lien pour aider dans la compilation d'apache l'allégeant des modules inutiles ?

    RoN
     
  34. fandecine
    fandecine WRInaute passionné
    Inscrit:
    2 Avril 2005
    Messages:
    1 873
    J'aime reçus:
    0
    Avant de chercher à recompiler apache en sélectionnant les modules apache, il faut savoir à quoi ils servent :wink:

    Voici la liste des modules standarts apache 1.3 :

    mod_access : Contrôle d'accès basé sur le nom du client ou son adresse IP
    mod_alias : Association de différentes parties du système de fichier de l'hôte dans l'arborescence des documents, et redirection des URL.
    mod_asis : Envoi de fichiers contenant leurs propres en-têtes HTTP
    mod_auth : Authentification des utilisateurs à partir d'un fichier texte
    mod_auth_dbm : Authentification des utilisateurs à partir d'un fichier DBM
    mod_autoindex : Création automatique des listes des répertoires
    mod_cgi : Appel des scripts CGI
    mod_dir : Gestion de base des répertoires
    mod_env : Passage d'environnement aux scripts CGI
    mod_expires : Ajout de l'en-tête Expires: pour les ressources spécifiées
    mod_headers : Ajout d'en-têtes HTTP aux ressources
    mod_imap : Gestion des fichiers imagemap
    mod_include : Documents analysés par le serveur
    mod_info : Informations sur la configuration du serveur
    mod_log_agent : Trace des User Agents
    mod_log_config : Trace configurable des accès.
    mod_log_referer : Trace des référants d'un document
    mod_mime : Détermination du type des documents en fonction de l'extension du fichier
    mod_mime_magic : Détermination du type des documents en fonction de "nombres magiques"
    mod_negotiation :Négotiation de contenu
    mod_proxy : Module de cache par proxy
    mod_rewrite : Association des URI à des fichiers en utilisant des expressions régulières
    mod_setenvif : Définition de variables d'environnement en fonction des informations client
    mod_so : Support des modules dynamiques
    mod_status : Affichage de l'état du système
    mod_userdir :Répertoires personnels d'utilisateurs
    mod_unique_id : Génération d'identifiants uniques de requête
    mod_usertrack : Suivi des utilisateurs à l'aide de cookies
    mod_vhost_alias : Support d'hôtes virtuels dynamiquement configurables

    ensuite, étant donné que je n'ai pas encore ouvert de site pour publier mes tutos
    :oops: tu m'envois un MP avec ta configuration (OS, processeur, mémoire disqu etc) et tes souhaits d'application et je te renvois un tuto sur mesure :wink:
     
  35. Ron56
    Ron56 WRInaute occasionnel
    Inscrit:
    20 Novembre 2005
    Messages:
    460
    J'aime reçus:
    0
    Pour essayer d'en faire profiter tout le mode jme suis installé un wiki, rapide a mettre en place et simple pour rédiger (-www.ronux.fr/wiki)

    Sinon on pourrait prendre un exemple assez commun :

    Debian etch sur un petit serveur comme un kimsufi ou dedibox fesant tourner un blog/wiki/annuaire :wink:

    EDIT : j'ai relu , en fait il faudrai plutot compiler php non ?


    EDIT 2 : bon j'ai trouver les 36 modules a laisser en place , la liste expliquée des modules et je sais ceux dont j'ai besoin , maintenant comment on configure avant de faire le make ?

    EDIT 3 : bon ben jvais adopter lighttpd , ca peut etre utile de compiler php quand meme ?

    Merci beaucoup :)
     
Chargement...
Similar Threads - [article] évoluer architecture Forum Date
Google victime d'abus d'incompréhension dominante [Article] Droit du web (juridique, fiscalité...) 17 Septembre 2010
[Article] Automatisez le déploiement de vos sites Administration d'un site Web 13 Août 2009
[Article] Les journaux cherchent le moyen de faire payer leur contenu Monétisation d'un site web 24 Mars 2009
[article] Exploiter les stats Google Webmaster Tools Référencement Google 16 Octobre 2008
[article] backlinks: la mort de l' Ancre Référencement Google 30 Septembre 2008
[Article] Lighttpd et apache sur le même serveur II Administration d'un site Web 26 Juin 2008
[Article] [beta]Sauvegarder un dédié part II Administration d'un site Web 13 Juin 2008
[Article] Configurer lighttpd (lighty) avec php5 Administration d'un site Web 16 Janvier 2008
[Article] Exemple de script de sauvegarde pour un dédié Administration d'un site Web 13 Janvier 2008
[article] APACHE, comment ça marche ? Administration d'un site Web 28 Décembre 2007
[article] illustration de la force ds liens internes Référencement Google 19 Août 2007
[article] Optimiser son serveur dedié part II Administration d'un site Web 12 Février 2007
[article] Bien configurer apache Administration d'un site Web 27 Novembre 2006
[article] Sécuriser son serveur LAMP Administration d'un site Web 18 Août 2006
[article] Optimiser son serveur dédié Administration d'un site Web 8 Mai 2006
[Article] Link Spam Detection Based on Mass Estimation Techniques avancées de référencement 9 Novembre 2005
[article] Google, Yahoo et MSN unis contre le spam ? Techniques avancées de référencement 26 Janvier 2005
[Article] L'effet sandbox sur Google Référencement Google 29 Décembre 2004
[Article] Le poids des mots, le choc des URL :-) Référencement Google 8 Décembre 2004
[Article] La commande link:URL sur Google Netlinking, backlinks, liens et redirections 5 Décembre 2004