tag:linuxfr.org,2005:/tags/exaproxy/publicLinuxFr.org : les contenus étiquetés avec « exaproxy »2012-03-07T09:04:36+01:00/favicon.pngtag:linuxfr.org,2005:News/292372012-03-01T17:55:49+01:002012-03-02T12:13:00+01:00ExaProxy, un proxy HTTP filtrantLicence CC By‑SA http://creativecommons.org/licenses/by-sa/3.0/deed.fr<div><p>ExaProxy est un nouveau proxy HTTP s'ajoutant à une longue liste de logiciels libres (SQUID, haproxy, varnish, tinyproxy…). Il se place dans le secteur de niche des proxy filtrants principalement desservis commercialement par des entreprises comme BlueCoat ou Fortinet.</p>
<p>Dans ce domaine, SQUID est la plus connue des solutions libre grâce à une interface simple permettant l’écriture rapide de modules de filtrage qui reçoivent l'IP de hôte connecté avec la requête faite. SQUID supporte aussi ICAP/eCAP pour ceux qui veulent modifier la requête et la réponse du serveur.</p>
<p>Cependant, afin d'avoir un filtrage différent par IP d'origine, il est impossible d'utiliser SQUID avec un load balancer de niveau 7, comme haproxy, qui change l'IP d'origine. Seules les solutions de haute disponibilités ré-écrivant l'adresse MAC de destination (comme ipvsadmin) sont adaptées. De plus, SQUID ne présente pas les requêtes de type CONNECT.</p>
<p>ExaProxy est donc un <em>forward proxy</em> permettant de filtrer ou router le trafic transitant dans un cluster de manière très souple, et permet l'utilisation du header X-Forwaded-For quand l'IP de l’hôte est masquée. Une autre utilisation peut être comme passerelle entre machines IPv4 et IPv6.</p>
<p>Le fonctionnement du serveur peut-être observé via une interface web sur le port local 8080.</p></div><ul><li>lien nᵒ 1 : <a title="http://code.google.com/p/exaproxy/" hreflang="en" href="https://linuxfr.org/redirect/75592">ExaProxy</a></li><li>lien nᵒ 2 : <a title="http://www.squid-cache.org/Doc/config/url_rewrite_program/" hreflang="fr" href="https://linuxfr.org/redirect/75593">Interface SQUID</a></li><li>lien nᵒ 3 : <a title="http://www.rfc-editor.org/rfc/rfc3507.txt" hreflang="fr" href="https://linuxfr.org/redirect/75594">ICAP</a></li><li>lien nᵒ 4 : <a title="http://en.wikipedia.org/wiki/Proxy_server#Forward_proxies" hreflang="fr" href="https://linuxfr.org/redirect/75595">Forward Proxy</a></li></ul><div><p>Ce proxy, bien qu’écrit en Python, a été conçu pour remplacer SQUID dans un cluster de serveurs sous forte charge. Afin d’être performant, l'application utilise un arsenal de techniques de programmation :</p>
<ul><li>un réacteur asynchrone (epoll ou select) ;</li>
<li>une gestion par événements de la machine d'état (<em>state-machine</em>) ;</li>
<li>l'utilisation de co-routines (plus légères que des threads) pour la gestions des connections TCP ;</li>
<li>une résolution DNS UDP/TCP interne intégrée dans le coeur (<code>gethostbyname</code> est une fonction bloquante) ;</li>
<li>une communication entre threads et le coeur par messages ;</li>
<li>une gestion automatique du nombre de threads nécessaire pour une bonne montée en charge.</li>
</ul><p>Beaucoup de scripts (certains compatibles avec le format SQUID) sont présents avec le code comme :</p>
<ul><li>comment éditer un cookie pour par exemple, toujours avoir des résultats YouTube filtrés ;</li>
<li>comment présenter <a href="https://www.wolframalpha.com/">https://www.wolframalpha.com/</a> quand <a href="https://www.google.com/">https://www.google.com/</a> a été demandé, sans que le butineur n'affiche de problème de certificat SSL ;</li>
<li>comment servir des fichiers locaux à la place de la page demandée ;</li>
<li>comment servir un contenu généré depuis le script lui-même.</li>
</ul><p>Le proxy est considéré assez stable pour être utilisé en production par quelques beta-testeurs, une version 1.0.0 devrait voir le jour début mars. Les auteurs recherchent donc activement des retours d’expérience autre que la leur.</p></div><div><a href="https://linuxfr.org/news/exaproxy-un-proxy-http-filtrant.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/89698/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/exaproxy-un-proxy-http-filtrant#comments">ouvrir dans le navigateur</a>
</p>
Thomas ManginLucas Bonnetclaudexhttps://linuxfr.org/nodes/89698/comments.atom