Dans un autre journal (http://linuxfr.org/~Houbaa/14858.html(...)) je me demandais sous quel OS passer mon routeur/serveur web. Après quelques hésitations, le choix s'est porté sur FreeBSD 5.2.1. Rien de particulier à dire sur la migration, cet OS est toujours d'aussi bonne qualité et facile (enfin... avec un peu de culture *NIX hein) d'installation.
J'en ai profité pour essayer deux trois projets qui ne m'ont pas déçu du tout.
* djbdns : l'alternative principale à BIND. Le serveur cache est complètement séparé du serveur DNS proprement dit, d'où plus de légèreté et plus de sécurité. Mais surtout, SURTOUT, deux heures en tout et pour tout pour installer la bête et écrire les fichiers de config ! Je préfère taire le temps que m'avait pris BIND ;)
http://cr.yp.to/djbdns.html(...) (le site est un peu austère mais bourré d'infos)
* PureFTPD : même principe ! J'en avais marre de ProFTPD et de sa lourdeur de configuration. Hop, PureFTPD, et en 30 minutes on se fait un beau serveur FTP avec TLS.
http://www.pureftpd.org/(...)
Je ne sais pas ce qu'il vaut par rapport au renommé VSFTPD (http://vsftpd.beasts.org/(...)). Si quelqu'un a utilisé les deux, j'aimerais bien en savoir plus...
* Apache : non là désolé j'ai rien trouvé de meilleur :o) Mais je tenais juste à faire un peu de pub pour cette petite merveille : mod_rewrite (http://httpd.apache.org/docs-2.0/mod/mod_rewrite.html(...)). Le principe est qu'Apache intercepte l'URL de la requête et la réécrit à travers une expression rationnelle avant de la servir. Jetez un coup d'oeil au site d'Apache pour voir à quoi ça peut servir.
Un autre truc d'Apache sur lequel j'ai percuté : beaucoup d'entre nous utilisent la combo Apache 2-mod_php4 sur leur site perso. Seulement Apache 2 tourne fréquemment en multi-threadé. Que va-t-il se passer si une des bibliothèques utilisées par PHP n'est pas thread-safe ? Perso j'ai pas envie de le savoir. Conclusion : pour plus de sureté, mettre Apache en prefork avec PHP...
* ipfw : c'est l'équivalent (actuel, ça va peut être changer pour Packet Filter) de Netfilter/iptables sous FreeBSD. Ben... waouhh !!! Même puissance que Netfilter, mais nettement plus facile d'écriture. En prime les scripts de base fournis sont assez complets et bien compréhensibles. À essayer sans hésitation si l'occasion se présente.
* PHP : là je dois dire que j'ai été un peu déçu. Je faisais tourner mon blog sur un Athlon 2.4GHz; inutile de dire que j'ai jamais eu de problème de rapidité. Mais sur un P2 300 MHz, ça devient une autre affaire : plusieurs secondes avant que la page principale du blog ne s'affiche (j'ai vérifié, c'est bien l'exécution du PHP qui bouffe ce temps). J'ai essayé d'accélérer un peu ça avec Turk MMCache (http://turck-mmcache.sourceforge.net/index_old.html(...)), mais ça n'améliore pas le temps d'exécution, seulement le temps de compilation. Le blog en question tourne sous Wordpress. Je suis en quête d'idées pour accélérer tout ça...
* Wordpress : mis à part le problème de rapidité précédent, sur une machine plus potable que la mienne, ce blog est une merveille. Facile d'installation, très respectueux des standards, assez riche, et modifiable si l'on touche un tant soit peu en PHP... Nombreux plugins disponibles. J'adore.
http://wordpress.org/(...)
Voili voilou, je vous encourage vivement à essayer ces quelques petits outils bien sympathiques et à donner votre avis !
# ...
Posté par BohwaZ (site web personnel, Mastodon) . Évalué à 2.
Sinon tu peux essayer de trouver un truc qui génère les pages en HTML statique une fois pour toutes. L'astuce que j'ai déjà utilisé c'est un truc qui génère les pages HTML et le documenterror 404 redirige vers un script PHP qui va générer la page (si elle n'existe pas donc car 404). Evidemment après faut un système qui supprime les pages html si le contenu est modifié en php.
« Je vois bien à quels excès peut conduire une démocratie d'opinion débridée, je le vis tous les jours. » (Nicolas Sarkozy)
[^] # Re: ...
Posté par Houbaa . Évalué à 0.
Bien sûr.
Oui :) Je me demande s'il existe déjà des scripts tout faits prêts à l'emploi. J'ai pas trop le temps d'aller hacker le code de Wordpress là...
[^] # Re: ...
Posté par Krunch (site web personnel) . Évalué à 2.
http://thewml.org/(...)
pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.
# PHP et Apache2...
Posté par Guillaume Plessis (site web personnel) . Évalué à 3.
Quoiqu'en disent les distribs qui ont le vent en poupe et autres fervents adeptes des toutes dernières versions de softs, Apache2 et PHP (4 ou 5), ce n'est même pas la peine d'y penser.
Une démonstration élégante, convaincante et exemple à l'appui par monsieur Rasmus Lerdorf :
http://marc.theaimsgroup.com/?l=php-dev&m=108736540021355(...)
A+
Gui
[^] # Re: PHP et Apache2...
Posté par Yannick Torrès . Évalué à 1.
http://fr3.php.net/manual/fr/faq.installation.php#faq.installation.(...)
[^] # Re: PHP et Apache2...
Posté par Frédéric Péters (site web personnel) . Évalué à 4.
Et comme écrit dans le mail cité: "And yes, you could use the prefork mpm with Apache2 to avoid the threading,".
[^] # Re: PHP et Apache2...
Posté par Nap . Évalué à 2.
[^] # Re: PHP et Apache2...
Posté par Jean-Baptiste Mayer . Évalué à 2.
[^] # Re: PHP et Apache2...
Posté par Calim' Héros (site web personnel) . Évalué à 1.
[^] # Re: PHP et Apache2...
Posté par Yusei (Mastodon) . Évalué à 2.
[^] # Re: PHP et Apache2...
Posté par Olivier Grisel (site web personnel) . Évalué à 2.
[^] # Re: PHP et Apache2...
Posté par Yusei (Mastodon) . Évalué à 2.
[^] # Re: PHP et Apache2...
Posté par Thomas Hervé . Évalué à 2.
Il ya encore qq inconvénients : le mode de publication des pages n'est pas géniale (ou tu publies un dossier complet ou tu publies fichier par fichier), les sessions ne sont pas gérées aussi bien qu'en Php (ca s'améliore), et pendant le developpement d'un site il m'arrive souvent de devoir relancer apache2.
Reste que tu bénéficies de toutes les librairies Python et bien sûr que cela fonctionne parfaitement en multi-threadé.
http://www.modpython.org/(...)
--
Thomas
[^] # Re: PHP et Apache2...
Posté par Nap . Évalué à 3.
Justement, ils ont réellement tout réimplémenté ? Ils ne se basent sur aucune bibliothèque C foireuse ? Ca me surprend, par exemple pour postgresql...
Idem pour Perl, ruby...
[^] # Re: PHP et Apache2...
Posté par Thomas Hervé . Évalué à 1.
Il existe plusieurs bibliothèques existantes pour Posgres, la seule que je connais (la plus utilisée ?) est Pygresql (http://www.pygresql.org/(...)) et elle est thread-safe depuis la version 3. En réalité je ne connais de bibliothèques "standards" qui ne soit pas thread-safe en Python; au pire la doc de chaque module donne ce type de renseignement.
--
Thomas
[^] # Re: PHP et Apache2...
Posté par LaBienPensanceMaTuer . Évalué à 4.
Le contenu y a pas plus dynamique.
Et depuis que j'utilise les CGIs en Perl pour mon site, j'ai les cheveux doux et brillants et l'haleine moins fétide.
[^] # Re: PHP et Apache2...
Posté par Blackknight (site web personnel, Mastodon) . Évalué à 2.
Quelques petits liens :
http://www.gnustep.org(...)
http://www.gnustepweb.org(...) pas à jour
Bon certes, il faut savoir programmer en Objective-C, connaître le framework GNUstep peut aider mais c'est assez sympa.
Qu'est-ce que vous voulez, c'est ma période langage et framework exotiques !!!
Ceci dit, ça marche bien mais c'est comme les EJB, c'est du serveur d'application plus qu'autre chose et ça peut paraitre démesuré.
# Proftpd, apache et wordpress.
Posté par frafra . Évalué à 4.
En y reflechissant bien, je ne vois bien ce qu'apporte apache2. S'il faut désactiver le threading, et que la faq php déconseille apache2/php en prod. pourquoi vouloir à tout pris la dernière version qui lave plus blanc. Perso, je reste en 1.3 jusqu'a nouvel ordre.
Dernier point, as tu fais une recherche dans google, il me semble qu'il existe un cache pour wordpress. Mais je ne l'ai pas testé.
[^] # Re: Proftpd, apache et wordpress.
Posté par Houbaa . Évalué à 2.
http://photomatt.net/2004/07/26/staticize-25/(...)
merchi :)
[^] # Re: Proftpd, apache et wordpress.
Posté par Houbaa . Évalué à 2.
# squid ?
Posté par Benjamin (site web personnel) . Évalué à 7.
bein si tu mets un squid en frontal de tout cela, bien tuné, cela te permettrait de ne pas calculer les pages à chaque visite et d'avoir donc un cache automatique de tes pages.
configure ton apache pour écouter sur 127.0.0.1:8080 par exemple, et dis à squid d'écouter sur 0.0.0.0:80 et d'être proxy/cache vers http://127.0.0.1:8080/(...)
@+
B
# add-ons
Posté par nullisimo . Évalué à 3.
Le port d'apache2 est principalement oriente 5-CURRENT, car depuis fevrier (post 5.2.1), il y a eu pas mal d'amelioration (kse par defaut, fine grained locking, etc...)
Pour les FreeBSD < 5.3, avoir un MPM threade est inutile (en fait si ca fonctionne c'est grace a un gros hack ;-)).
Chercher dans "FreeBSD" dans:
http://cvs.apache.org/viewcvs.cgi/httpd-2.0/STATUS(...)
Sous FreeBSD 5.2.1 tu peux toujours tester KSE et thr avec apache en definissant WITH_PTHREAD_LIBS={thr;kse} + WITH_MPM=worker (WITH_THREADS ajoute uniquement le support du threading dans apr).
Pour ceux qui veulent "accelerer" leur apache2 (sous FreeBSD):
1. Si la carte reseaux le supporte, ajouter "options DEVICE_POLLING" au kernel (man polling pour voir les cartes supportees)
2. ajouter comme knob lors du make WITH_EXPERIMENTAL_PATCHES. Ca rajoute le support pour kqueue + accf_http (*).
3. pour les + courageux ;) kldload sem (ou "options P1003_1B_SEMAPHORES") pour profiter de "posixsem" comme AcceptMutex (ca peut etre risque)
Rien qu'avec ca, sous haute charge, on peut esperer 40% de "perf" en plus ;-). (en fait ca reduit considerablement, les echanges userspace/kernelspace).
Une astuce (meme si ce n'est pas une solution) pour profiter d'un apache2 threade et de compiler php avec le support Fast_CGI (WITH_FASTCGI lors de la compil de php).
Un petit coup de coeur pour en finir avec apache ;-)
Pour ceux qui regrettent de ne pas avoir mod_accounting sous apache2, www/mod_log_config-st + www/mod_log_mysql peut le remplacer (en mieux meme ;-)
En ce qui concerne les demons FTP, il ya moftpd qui est pas trop mal.
(*) il existe l'equivalent sous linux (epoll), vous pouvez toujours recup les backport des patches (exp-apr-kqueue.patch) du ports pour test sous linux ;-)
[^] # Re: add-ons
Posté par duf . Évalué à 1.
Merci
[^] # Re: add-ons
Posté par nullisimo . Évalué à 5.
Tu as entre 40% et 65% de "boost" en plus, entre le apache2 "out-of-the-box" avec un kernel GENERIC, et ces 3 optimisations "simple".
Sur un athlon XP 2000, 512Mo SDRAM, sur une carte mere Elite avec la carte reseau integre (sis), apache 2 avec MPM=worker.
Avec httperf tu as:
Out-of-the-box: 570 req/s
Avec les points 1 et 2: 810 req/s
avec le scheduler ULE, tu perds 5% compare au scheduler 4BSD. je n'ai pas teste avec les dernieres modifs de jeff roberson, mais ULE devrait au moins egaler 4BSD maintenant.
Tu peux gagner 5-10 % avec posixsem (sous tres haute charge) et en modifiant le nb de threads max.
Pour info ces tests ont ete realise avec le patch originel de Paul Querna, avant le cleanup explicite (a jour dans le patch), ce qui devrait eviter qq memory leaks et eviter au process "root" de nettoyer (tu peux donc esperer un gain significatif).
Entre temps, la pile IP a ete nettoye (fine grained locking) donc apache devrait etre un peu plus reactif (niveau reseau).
References:
man accf_http
man kqueue
man polling
http://httpd.apache.org/docs-2.0/misc/perf-tuning.html(...) (*)
http://marc.theaimsgroup.com/?t=108650227500001&r=1&w=2(...)
code source d'apache 2 ;-)
(*): pour info "AcceptMutex pthread" sera supporte dans FreeBSD 6.x uniquement, car l'ajout pthread_mutexattr_setpshared() necessite un bump de la libc qui n'est plus possible depuis le code freeze de FreeBSD 5.0
[^] # Re: add-ons
Posté par duf . Évalué à 1.
# PureFTPD
Posté par Blackknight (site web personnel, Mastodon) . Évalué à 2.
[^] # Re: PureFTPD
Posté par Houbaa . Évalué à 2.
Cela dit, je n'ai jamais vraiment exploré ftpd. Il est peut-être très bien en fait.
[^] # Re: PureFTPD
Posté par Blackknight (site web personnel, Mastodon) . Évalué à 1.
Bon, après tout dépend de ce que tu veux en faire.
Ceci dit regardes bien la page de man car pour ce qui est de l'authentification, le système en lui-même fournit déjà pas mal de choses que le FTPD utilise (notamment, tout ce qui a trait au login.conf). Le gros avantage de cette méthode est que l'administration d'un compte utilisateur ne se fait qu'à un endroit précis. Son gros inconvénient, c'est que pour un compte utilisateur, tout se fait à un seul endroit ;-) (Si par exemple, tu veux empêcher le login ssh entre 21h et 8h mais que tu veux autoriser le ftp sur cette plage).
Je peux pas te dire beaucoup plus de trucs que ça vu que je n'ai qu'une 4.7 sous la main et qu'il me semble que certaines choses ont changé depuis.
# VSftpd
Posté par un_brice (site web personnel) . Évalué à 2.
http://vsftpd.beasts.org/(...)
# Question bete...
Posté par Calim' Héros (site web personnel) . Évalué à 1.
[^] # Re: Question bete...
Posté par nullisimo . Évalué à 3.
# cd /usr/ports/sysutils/portupgrade
# make install clean
pour bien debuter :
http://www.onlamp.com/pub/a/bsd/2003/08/28/FreeBSD_Basics.html(...)
[^] # Re: Question bete...
Posté par Houbaa . Évalué à 3.
Pour les failles "système" (noyau et logiciels associés : sur BSD, le "système" comprend le noyau plus les outils GNU traditionnels, BIND, ...) on peut patcher directement les binaires avec freebsd-update. Sinon il reste la mise à jour de l'arbre des sources et la recompilation, ce qui est envisageable sur une config rapide.
[^] # Re: Question bete...
Posté par Calim' Héros (site web personnel) . Évalué à 1.
[^] # Re: Question bete...
Posté par Houbaa . Évalué à 2.
La vitesse de ton processeur en tout cas n'est pas un handicap pour maintenir ta machine à jour sous *BSD.
[^] # Re: Question bete...
Posté par Calim' Héros (site web personnel) . Évalué à 1.
# bind VS djb
Posté par gc (site web personnel) . Évalué à 5.
[^] # Re: bind VS djb
Posté par Krunch (site web personnel) . Évalué à 3.
D'un autre côté j'ai jamais essayé djbdns et les problèmes de sécurité et d'architecture de BIND semblent reconnus de tous.
pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.
[^] # Re: bind VS djb
Posté par Aurélien Bompard (site web personnel) . Évalué à 2.
[^] # Re: bind VS djb
Posté par Calim' Héros (site web personnel) . Évalué à 1.
[^] # Re: bind VS djb
Posté par Houbaa . Évalué à 2.
Mais j'espère bien que les lecteurs de linuxfr ne sont pas des intégristes du logiciel libre, spa ? ;-)
[^] # Re: bind VS djb
Posté par Calim' Héros (site web personnel) . Évalué à 1.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.