What is a ’Proxy plugin’ ?
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.
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.
We have the following proxy plugins available in Load Balancer:
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.
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 & 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.