select * from section<?xml version='1.0' encoding='iso-8859-1' ?>
<article>
<id><![CDATA[37]]>></id>
<author><nick><![CDATA[Juan M. Casillas]]>></nick>
<email><![CDATA[juanm.casillas@jmcresearch.com]]>></email>
></author>
<title><![CDATA[Proxy plugins]]>></title>
<subtitle><![CDATA[Internal overview]]>></subtitle>
<body><![CDATA[&lt;h3&gt;What is a ?Proxy plugin? ?&lt;/h3&gt;

&lt;p&gt;
Proxy plugins have the task of connect the client and the choosed
server. This proxies can be ?smart? enough to manage the protocol
specific issues (e.g. the proxyplugin_http.so plugin) or not, so
It only transparent passes the data to the client form the server
(works as a transparent proxy). This plugins are in fact the most
important ones, because they can affect the Load Balancer?s 
perfomance if they are badly written. 
&lt;/p&gt;

&lt;p&gt;
This proxies have to talk with the chooser plugin (this plugin
as you can see in the next section, has the task of choose 
the right server for the current connection) to get a server. 
&lt;p&gt;

We have the following proxy plugins available in Load Balancer:

&lt;table border=1 width=100% cellpadding=5 class=thinborder&gt;

&lt;tr bgcolor=&quot;#f0f0f0&quot;&gt;
&lt;td class=thinborder_title&gt;&lt;b&gt;plugin name&lt;/b&gt;&lt;/td&gt;
&lt;td class=thinborder_title width=70%&gt;&lt;b&gt;Description&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;proxyplugin_generic.so&lt;/td&gt;
&lt;td&gt;
This is the generic proxy plugin. This plugin passes to the chooser
plugin the client?s connection address, and when a server is selected,
it opens a connection to the server and works as a proxy until the 
server end the data (or some timeout happen). Is the most simple
(and generic) proxy.
&lt;b&gt;configuration options&lt;/b&gt;&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;No configuration options&lt;/b&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;


&lt;tr&gt;&lt;td&gt;proxyplugin_http.so&lt;/td&gt; 
&lt;td&gt; 
This is a ?smart? plugin that understands the HTTP protocol.  
this plugin first read a full request for the client, and then
passes to the chooser the client connection address, and the 
uri request, so the chooser can switch between clusters &amp; servers
using the uri (this switching is done using regular expressions, 
see next section for details). When the server is selected, then
plugin works as a transparent proxy between the server and the 
client, closing the connection when the server sends an EOF,
or some timeout happen.
&lt;b&gt;configuration options&lt;/b&gt;&lt;br&gt; 
&lt;ul&gt; 
&lt;li&gt;&lt;b&gt;No configuration options&lt;/b&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
&lt;/p&gt; ]]>></body>
<keywords><![CDATA[load balancer  proxy]]>></keywords>
<stamp><![CDATA[1063914593]]>></stamp>
<updated><![CDATA[1070911507]]>></updated>
<language><![CDATA[0]]>></language>
<sections><section><![CDATA[Load Balancer]]></section>
></sections>
<site><![CDATA[http://www.jmcresearch.com]]>></site>
<url><![CDATA[http://www.jmcresearch.com//src/articlehelper.php?action=preview&amp;id=37]]>></url>
</article>