|
Voir le sujet précédent :: Voir le sujet suivant
|
| Auteur |
Message |
| |
|
localhost Nouveau WRInaute
Inscrit le: 23 Mar 2004 Messages: 5
|
Posté le : Mar Mar 23, 2004 20:56 Sujet du message: mod_rewrite et log d'utilisateur |
|
|
Salut !
J'utilise mod_rewrite d'apache (sous unix) pour gerer les vhosts de mes utilisateurs (users1.domain.com user2.domain.com ...) je les gere avec un fichier dummy.vhost dans lequel je met :
| Code: |
user1.domain.com /home/user1
user2.domain.com /home/user2 |
ca marche impecable jusqu'au moment j'ai eu des demandes pour offrir des statistiques pour quelques utilisateurs ,j'utilise webalizer mais c'est pas ca le probleme ,j'ai revisé la doc de mod_rewrite ,on ne peut pas offrir un fichier log par vhost pour que les analyseurs de logs (les scripts de stats) analysent ce fichier et donnent des stats spécifiques à un seul utilisateur ,je sais qu'en utilisant la directive VirtualHost ca m'offrira un fichier log par utilisateur ,mais avec cette methode j'aurais a editer le httpd.conf et redemarrer apache à chaque fois qu'un utilisateur s'inscrit ,et avec plusque 300 utilisateurs inscrits mon httpd.conf aura une taille gigantesque qui bouffera toute la ram...
voila si vous avez une solution pour moi ,je vous remercie. |
|
| |
|
 |
localhost Nouveau WRInaute
Inscrit le: 23 Mar 2004 Messages: 5
|
Posté le : Mar Mar 23, 2004 23:39 Sujet du message: mod_rewrite et log d'utilisateur |
|
|
voila pour plus d'explication :
Voila les lignes inserées dans mon httpd.conf (Apache2 unix)
| Citation: |
RewriteEngine on
RewriteMap lowercase int:tolower
RewriteMap vhost txt:/usr/local/httpd/conf/dummy.vhost
RewriteLog /usr/local/httpd/logs/rewrite.log
RewriteLogLevel 1
RewriteCond %{REQUEST_URI} !^/icons/
RewriteCond %{REQUEST_URI} !^/cgi-bin/
RewriteCond %{REQUEST_URI} !^/error/
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
RewriteCond ${vhost:%1} ^(/.*)$
RewriteRule ^/(.*)$ %1/$1
RewriteCond %{REQUEST_URI} ^/cgi-bin/
#RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
#RewriteCond ${vhost:%1} ^(/.*)$
#RewriteRule ^/(.*)$ %1/$1 |
voila mon fichier map des vhosts
| Citation: |
# cat /usr/local/httpd/conf/dummy.vhost
nas.hexahost.com /home/nas/www
nuk.hexahost.com /home/nuk/www |
et voila le fichier log de sortie ,il n'est pas traitable par webalizer ou autre ,ces lignes sont le resultat d'une seule requete sur le serveur qui normalement donne une seule ligne sur le log ,mais voila ce que ca donne :
| Citation: |
# cat /usr/local/httpd/logs/rewrite.log
127.0.0.1 - - [23/Mar/2004:22:08:39 +0100] [nas.hexahost.com/sid#809b5f0][rid#815daa8/initial] (1) go-ahead with /home/nas/www/ [OK]
127.0.0.1 - - [23/Mar/2004:22:08:39 +0100] [nas.hexahost.com/sid#809b5f0][rid#8166ac0/subreq] (1) go-ahead with /home/nas/www/index.php [OK]
127.0.0.1 - - [23/Mar/2004:22:08:39 +0100] [nas.hexahost.com/sid#809b5f0][rid#8168ac8/subreq] (1) go-ahead with /home/nas/www/index.htm [OK]
127.0.0.1 - - [23/Mar/2004:22:08:39 +0100] [nas.hexahost.com/sid#809b5f0][rid#8166ac0/subreq] (1) go-ahead with /home/nas/www/index.html [OK]
127.0.0.1 - - [23/Mar/2004:22:08:39 +0100] [nas.hexahost.com/sid#809b5f0][rid#8168ac8/subreq] (1) go-ahead with /home/nas/www/index.html.var [OK]
127.0.0.1 - - [23/Mar/2004:22:08:39 +0100] [nas.hexahost.com/sid#809b5f0][rid#8166ac0/subreq] (1) go-ahead with /home/nas/www/HEADER.html [OK]
127.0.0.1 - - [23/Mar/2004:22:08:39 +0100] [nas.hexahost.com/sid#809b5f0][rid#816db10/subreq] (1) pass through /cgi-bin/index.php
127.0.0.1 - - [23/Mar/2004:22:08:39 +0100] [nas.hexahost.com/sid#809b5f0][rid#816db10/subreq] (1) pass through /cgi-bin/index.htm
127.0.0.1 - - [23/Mar/2004:22:08:39 +0100] [nas.hexahost.com/sid#809b5f0][rid#816db10/subreq] (1) pass through /cgi-bin/index.html
127.0.0.1 - - [23/Mar/2004:22:08:39 +0100] [nas.hexahost.com/sid#809b5f0][rid#816db10/subreq] (1) pass through /cgi-bin/index.html.var
127.0.0.1 - - [23/Mar/2004:22:08:39 +0100] [nas.hexahost.com/sid#809b5f0][rid#816db10/subreq] (1) go-ahead with /home/nas/www/README.html [OK]
127.0.0.1 - - [23/Mar/2004:22:08:39 +0100] [nas.hexahost.com/sid#809b5f0][rid#815daa8/initial] (1) pass through /icons/blank.gif
127.0.0.1 - - [23/Mar/2004:22:08:39 +0100] [nas.hexahost.com/sid#809b5f0][rid#815daa8/initial] (1) pass through /icons/folder.gif
127.0.0.1 - - [23/Mar/2004:22:08:39 +0100] [nas.hexahost.com/sid#809b5f0][rid#815daa8/initial] (1) pass through /icons/unknown.gif |
merci pour votre aide |
|
| |
|
 |
ysimon WRInaute occasionnel

Inscrit le: 24 Fév 2004 Messages: 140
|
Posté le : Mer Mar 24, 2004 2:37 Sujet du message: Re: mod_rewrite et log d'utilisateur |
|
|
et ben moi, je ferai un grep toutes les nuits sur le access.log, enfin, si l'info est bien dans le fichier access.log
genre
cat /var/log/apache/access.log | grep user1.domain.com > access_user1.log |
|
| |
|
 |
localhost Nouveau WRInaute
Inscrit le: 23 Mar 2004 Messages: 5
|
Posté le : Mer Mar 24, 2004 4:36 Sujet du message: mod_rewrite et log d'utilisateur |
|
|
salut !
merci pour votre rapide reponse
voila une ligne de mon access_log :
| Citation: |
127.0.0.1 - - [23/Mar/2004:22:08:39 +0100] "GET /icons/unknown.gif HTTP/1.1" 304 -
|
il n'y a pas de vhost dedans ,comment faire dans mon cas ?
voila ce que je met dans mon httpd.conf pour les logs :
| Citation: |
ErrorLog logs/error_log
LogLevel warn
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
# You need to enable mod_logio.c to use %I and %O
#LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
CustomLog logs/access_log common |
|
|
| |
|
 |
localhost Nouveau WRInaute
Inscrit le: 23 Mar 2004 Messages: 5
|
Posté le : Jeu Mar 25, 2004 9:29 Sujet du message: mod_rewrite et log d'utilisateur |
|
|
salut !
ysimon cette solution va ralentir mon serveur si mon access_log est grand en taille et que j'ai plusieurs utilisateurs à extraire de ce log... |
|
| |
|
 |
Pulsar-san WRInaute occasionnel

Inscrit le: 29 Oct 2003 Messages: 190
|
Posté le : Dim Mai 09, 2004 12:58 Sujet du message: mod_rewrite et log d'utilisateur |
|
|
Je crois qu'on peut ajouter "%v" en premier paramètre dans le LogFormat, ça y met le nom du virtual host, par exemple:
LogFormat "%v %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
Ensuite tu peux utiliser la directive de ysimon, ou bien utiliser split-logfile qui est prévu pour découper tes logs en 1 fichier par virtual host. |
|
| |
|
 |
| |
|
|