Ceci est une ancienne révision du document !


Authentification sur base PAM

  • apt-get install libapache2-mod-auth-pam
  • Dans le .htaccess recherché

AuthPAM_Enabled on
AuthPAM_FallThrough off
AuthType Basic
AuthName "Intranet"
AuthUserFile /dev/null
AuthBasicAuthoritative Off
require valid-user

Reverse Proxy via Apache

De ce que j'ai vu pas forcement conseillé, et puis bon quand on vois la progression d'//NginX//
* [[https://httpd.apache.org/docs/2.2/mod/mod_proxy.html|The official conf]]

Gestion des session PHP en DB

    • FIXME: leur remonter l'info
  • Objectifs:
    • Clusteriser les sessions
    • Ne rien recompiler
  • Methode
    • Réecrire les methodes de gestion des sessions
    • Ecrire dans un “cluster” MySql
  • Mon opinion
    • Ok, c'est pas tres classe comme spof, il y a mieux : mais pas de recompil on a dit

Php.ini

[PHP]
auto_prepend_file = /usr/local/www/mysql-session.php
...

[Session]
; Handler used to store/retrieve data.
;session.save_handler = files
session.save_path = "mysql://login:password@vrrpmysqlip/apachedb"

Modifications du script

$chaine = str_replace(array('/','\\',"@"),":",get_cfg_var("session.save_path"));
list($null,$null,$null,$SESS_DBUSER,$SESS_DBPASS,$SESS_DBHOST,$SESS_DBNAME) = explode(":",$chaine);

FIXME: evidement, les autres init ont etes commmentes.

Nettoyage

FIXME: A faire!!!!

  • Les sessions sont crées en base, mais pas forcement supprimées il faut donc nettoyer.
  • Pour cela une (simple) requete SQL en s'inspirant de /etc/cron.d/php5 et /usr/lib/php5/maxlifetime doit faire l'affaire

Pour lister les connexions actives


mysql> select * from sessions WHERE expiry < UNIX_TIMESTAMP(NOW());

Accelerateur APC

root@smax:/etc/php5# cat /etc/php5/conf.d/apc.ini 
extension=apc.so
apc.shm_size=64
apc.gc_ttl=0

  • Est fournit avec apc un php ( /usr/share/doc/php-apc/apc.php.gz ) qui permet de voire l'etat des caches apc serveur

Gestions des Vhost

Full-Automatique :

FIXME: look about VirtualScriptAlias

Pas Automatique mais + administrable

Objectif

  • Pouvoir discerner les utilisateurs apache en cas de surcharge plantage, etc, dans un cadre php (et autre)
  • suEXEC
    • une vrai usine a gaz pour du php (necessite un wrapper par user pex -regle18-, etc…)
    • je suppute cela moins performant que du php en module (on ne peut pas precharger des FastCGI)
    • necessite un patch (euh je crois) pour travailler dans le /home … :/
  • suPHP
    • limité au php
    • Les droits sont ceux du pocesseurs du fichier (dommage je preferais par arbo sur le coup)

Usage

Ce module une fois installé ne fait que rajouter des fonctionnalités dans les vhosts (lire : on peux installer puis rajouter les vhost un a un)

  • Fonction supplementaires
    1. AssignUserID <user> <group> : si pas specifié alors ceux d'apache, pour une bascule plus sereine user, mais le groupe d'apache !
    2. MaxClientsVHost si un des vhost a une tendance a saccager la machine
    3. NiceValue la meme chose mais en plus subtile :)
  • ATTENTION de part le fait que le thread apache prend l'identitée spéfiée par AssignUserID, si le thread reste ouvert, mais gere d'autres vhost… vous aurez de la bouillie de droit… Pensez a baisser drastiquement le KeepAlived genre 1, y a NginX c'est bien…

Gestion des droits/Umask

  • Trouve sur Slicehost
  • on px facilement rajouter dans /etc/apache2/envvars (/etc/sysconfig/httpd sur RH'n Co) le umask adequate

Traitement des logs

Pourquoi faire ? Bin betement pour avoir des stats de fréquentation…

Mais un hint rapide, mis en place ici : BBClone

  • Il suffit de mettre en place en en-tete de chaques pages et de regarder le resultat, c'est plus simple que parametre AwStats (outils merveilleux quand meme)
  • Et comme c'est dure de modifier toutes les pages un simple auto-prepend ds le php.ini
  • Attention, c'est fonctionnel sur les sites www en php, cela ne comptabilisera ni les images ni les css ni le html je pense ;)

En donner l'acces aux dev

Statistiques

FIXME:Il existe awstat, un fort bel outils

sur une ferme

FIXME: Il existe un outil apache qui permet de faire de la concatenations de fichiers de logs

Apache et le reverse-proxy

En reverse Proxy

A mettre dans le joli htacess

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.domaine\.tld$
RewriteRule ^(.*) http://172.31.32.33/$1 [P,L]
RewriteCond %{HTTP_HOST} ^bubu\.domaine\.tld$
RewriteRule ^(.*) http://192.168.1.2/$1 [P,L]

NB: je prefere _vraiment_ NginX

Avec un reverse Proxy

  • Le pb derriere un reverse proxy, c'est qu'Apache ne voit plus vraiment le client.
  • Il existe bien des variables predefinis dans les headers mais bon, pas toujors pratique

⇒ Ils ont donc inventés le rpaf, et maintenant dans les logs on a l'IP du client !

  1. Nom du paquet : libapache2-mod-rpaf
  2. Un exemple, ou l'IP du reverse proxy est la 192.168.1.1

root@smax:/etc/apache2# cat /etc/apache2/mods-enabled/rpaf.conf 
<IfModule mod_rpaf.c>
RPAFenable On
RPAFsethostname On
RPAFproxy_ips 192.168.1.1
</IfModule>

Diverseries

Stat en RT

  1. Je recommande chaudement de ne pas donner le lien resultant de ca a tout le monde, ca peut chauffer…
  2. Je suis en train de reecrire un script plus basique pour obtenir
    1. Le nom du site facheux
    2. L'IP facheuse

Bon, bin y a pu ka donner le lien Server Status PHP Parser

Comment savoir (a la hache) quel vhost consomme le plus ?

root@Atchoum:~# lsof -n | grep /home | tr -s "\t " " " | cut -d' ' -f9 | sort | uniq -c
      1 /home/kikou/log/application.log
      1 /home/kikou/webapp/www
      3 /home/claire/ftp-import
      1 /home/pas/webapp/www
      1 /home/dago/webapp/www
      5 /home/cerise/webapp/www
root@Atchoum:~# lsof -n | grep /home | tr -s "\t " " " | cut -d' ' -f9 | sort | uniq -c
      2 /home/inter/webapp/www
      3 /home/claire/ftp-import
      1 /home/pas/webapp/www
      3 /home/cerise/webapp/www
root@Atchoum:~# lsof -n | grep /home | tr -s "\t " " " | cut -d' ' -f9 | sort | uniq -c
      3 /home/claire/ftp-import
      3 /home/cerise/webapp/www
root@Atchoum:~# lsof -n | grep /home | tr -s "\t " " " | cut -d' ' -f9 | sort | uniq -c
      3 /home/claire/ftp-import
root@Atchoum:~# logout

Comment savoir (a la hache) quel IP nous requete le plus ?

root@Atchoum:~# tail -1000 /var/log/apache2/access.log | cut -f1 -d" " | sort | uniq -c |sort -n
      1 127.1.2.3
      1 127.1.2.4
      2 127.1.2.7
      3 127.1.2.5
     15 127.1.2.6
     18 127.1.2.8
     82 127.1.2.9

docs/linuxeries/apache.1337717360.txt.gz · Dernière modification: 2012/05/22 22:09 (édition externe)
Recent changes RSS feed Debian Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki