Février 2013 Archives
2013-02-16 20:23
Transmission : utiliser apache comme proxy
Je suis un adepte du P2P pour télécharger mes images Linux. Jusque là, j'utilisais rtorrent, allié à l'interface web rutorrent (pour les endroits où de méchants sysadmins ont bloqué le port SSH).
Le problème de rutorrent, en dehors du fait que c'est moche, c'est qu'il faut un i7 overclocké juste pour interpréter le javascript. Autant dire que j'étais un poil juste avec mon atom...
Après quelques tests, j'ai été convaincu par Transmission : un joli fichier texte pour tout configurer, une interface web simple mais légère, et la possibilité de se connecter à distance en utilisant une interface lourde.
Par contre, utiliser Apache comme proxy pour l'interface web relève du défi : presque tout le monde bute sur l'erreur 409 de la mort :
409: Conflict Your request had an invalid session-id header. To fix this, follow these steps: When reading a response, get its X-Transmission-Session-Id header and remember it Add the updated header to your outgoing requests When you get this 409 error message, resend your request with the updated header This requirement has been added to help prevent CSRF attacks.
Après de longues recherches infructueuses, je me suis preque résigné. Et puis je suis tombé sur ce post, qui contient LA solution.
Il suffit en fait de ne pas mettre le "/" final lorqu'on spécifie le domaine cible, à l'aide des directive ProxyPass
et ProxyPassReverse
. Je donne donc ma configuration, elle sera peut être utile à d'autres :
<VirtualHost *:443> ServerName monServeur.fr ServerAlias www.monServeur.fr Redirect permanent / https://monServeur.fr/transmission RewriteEngine on RewriteRule /transmission[/]?$ /transmission/web/ [R=permanent] SSLEngine on SSLCertificateFile /etc/httpd/ssl/monServeur/monCertificat.fr.crt SSLCertificateKeyFile /etc/httpd/ssl/monServeur/monCertificat.fr.key ProxyRequests On ProxyPreserveHost Off <Proxy *> Order allow,deny Allow from all </Proxy> ProxyPass /transmission http://127.0.0.1:9091/transmission ProxyPassReverse /transmission http://127.0.0.1:9091/transmission </Virtualhost> <VirtualHost *:80> ServerName monServeur.fr ServerAlias www.monServeur.fr Redirect permanent / https://monServeur.fr/transmission </Virtualhost>
À noter qu'Apache n'a pas besoin de gérer l'authentification, qui peut être configurée directement dans le fichier de conf de Transmission-daemon.
2013-02-16 19:39
NetBSD : problème au redémarrage d'Apache
J'ai récemment eu un problème étrange sur ma NetBSD. Après quelques redémarrages successifs, Apache refusait de se lancer. Dans le logs, je retrouvais l'erreur suivante :
(28)No space left on device: AH00023: Couldn't create the authdigest-opaque mutex
Pourtant, mon disque dur était loin d'être plein, et un reboot permettait de résoudre le problème. J'ai fini par trouver la solution sur ce blog.
Le soucis provenait en réalité de nombreux sémaphores, qui n'étaient pas supprimés lors de l'arrêt du démon. On peut les observer à l'aide d'ipcs
:
# ipcs -s IPC status fromas of Sat Feb 16 19:30:12 2013 Semaphores: T ID KEY MODE OWNER GROUP s 2752512 0 --rw------- www www s 1376257 0 --rw------- www www s 1376258 0 --rw------- www www s 2293763 0 --rw------- www www
La commande ipcrm
permet de s'en débarasser :
# ipcrm -s 2752512
On peut supprimer tous les sémaphores en une ligne, grâce à perl :
# ipcs -s | grep www | perl -alne 'qx(ipcrm -s $F[1])'
Le démarrage d'Apache peut alors s'effectuer correctement.