<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="/stylesheets/rss.css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>lighty's life: The New mod_proxy_core</title>
    <link>http://blog.lighttpd.net/articles/2006/07/15/the-new-mod_proxy_core</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description></description>
    <item>
      <title>The New mod_proxy_core</title>
      <description>&lt;p&gt;One thing I heard from everyone at the railsconf was: &lt;i&gt;Please fix mod_proxy&lt;/i&gt;. In my talk I presented a look into the future and how mod_proxy will evolve in lighty 1.5.x, unification of the backend-plugin, .,.&lt;/p&gt;


	&lt;p&gt;Well, perhaps it will be a bit earlier than 1.5.0&lt;/p&gt;
&lt;p&gt;Over the last week and especially at this weekend I make big steps into the right direction:&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;a string &lt;span class="caps"&gt;HTTP&lt;/span&gt;-response parser based on lemon used by all backend plugins (FastCGI, &lt;span class="caps"&gt;CGI&lt;/span&gt;, SCGI, Proxy)&lt;/li&gt;
		&lt;li&gt;all backends use a sliding window to send data. The data-stream in chunked and as soon as a chunk is finished it is freed or reused.&lt;/li&gt;
		&lt;li&gt;the network-code is only implemented once&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;But more important is the work on mod_proxy_core with this feature-set:&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;Unified core for all backends
  * failover, balancers, config, streaming, ... are shared&lt;/li&gt;
		&lt;li&gt;several protocols for FastCGI, &lt;span class="caps"&gt;CGI&lt;/span&gt;, SCGI and &lt;span class="caps"&gt;HTTP&lt;/span&gt;&lt;/li&gt;
		&lt;li&gt;Keep-Alive for FastCGI and &lt;span class="caps"&gt;HTTP&lt;/span&gt;&lt;/li&gt;
		&lt;li&gt;&lt;span class="caps"&gt;HTTP&lt;/span&gt;/1.1 (incl. chunked encoding to the backend)&lt;/li&gt;
		&lt;li&gt;queueing of connections in the plugin (instead of using the kernel for it)&lt;/li&gt;
		&lt;li&gt;&lt;span class="caps"&gt;HTTP&lt;/span&gt; over &lt;span class="caps"&gt;SSL&lt;/span&gt; to the backends&lt;/li&gt;
		&lt;li&gt;Host-Selection by hostname (auto-loadbalancing for multi-homed hosts)&lt;/li&gt;
		&lt;li&gt;Request/Response rewrite in the proxy-module before they are sent to the backends&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;&lt;b&gt;What is working up to now ?&lt;/b&gt;&lt;/p&gt;


	&lt;p&gt;Up to now I can use RR-balancing via &lt;span class="caps"&gt;HTTP&lt;/span&gt;/1.1 with keep-alive and chunked-encoding. As testbase I used http://cnn.com/ and http://www.stern.de/ for the RR-testing and http://php.net/ to test chunked encoding. All of them are contacted via &lt;span class="caps"&gt;HTTP&lt;/span&gt;/1.1 and use Keep-Alive.&lt;/p&gt;


	&lt;p&gt;I only specified the hostname, lighty resolved the hostname at startup and added all IPs to the LB-pool. .oO( Hey, it would be easy to add and remove IPs from this pool at runtime )&lt;/p&gt;


	&lt;p&gt;It was good to kill some old code on the way. The fd-event handling got a cleanup and more flexible in the handling. the old backend-plugins got simplified as the share more code, ... over all good weekend so far.&lt;/p&gt;


	&lt;p&gt;&lt;b&gt;What is missing ?&lt;/b&gt;&lt;/p&gt;


	&lt;p&gt;Failover handling and queueing is planned for tomorrow, process-spawning will be unified a bit later. mod_proxy_core will be part of 1.4.12 next to the old, well-known plugins for FastCGI, &lt;span class="caps"&gt;SCGI&lt;/span&gt;, CGI and &lt;span class="caps"&gt;HTTP&lt;/span&gt;.&lt;/p&gt;


	&lt;p&gt;When the code for mod_proxy_core is commited I advise everyone to take a look at the code for it. It is very clean and well-documented and should be easy to read. ... if you know C. :)&lt;/p&gt;</description>
      <pubDate>Sat, 15 Jul 2006 21:06:00 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:f41b2260-ed8b-4080-b0cf-9819ca3500c2</guid>
      <author>jan</author>
      <link>http://blog.lighttpd.net/articles/2006/07/15/the-new-mod_proxy_core</link>
      <category>mod_proxy</category>
      <category>railsconf</category>
      <trackback:ping>http://blog.lighttpd.net/articles/trackback/1758</trackback:ping>
    </item>
    <item>
      <title>"The New mod_proxy_core" by Jan Kneschke</title>
      <description>ProxyPreserveHost is our default behaviour. You have to rewrite the Host header explicitly.
</description>
      <pubDate>Sat, 22 Jul 2006 09:32:34 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:75495f23-4fb3-46e6-93df-ff172472c0e8</guid>
      <link>http://blog.lighttpd.net/articles/2006/07/15/the-new-mod_proxy_core#comment-1819</link>
    </item>
    <item>
      <title>"The New mod_proxy_core" by Tyler</title>
      <description>Count me among those eager to start testing this as soon as 1.4.12 is released.</description>
      <pubDate>Sun, 16 Jul 2006 23:39:42 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:e5e09d18-c60d-4d6b-ac9e-141153c7945b</guid>
      <link>http://blog.lighttpd.net/articles/2006/07/15/the-new-mod_proxy_core#comment-1771</link>
    </item>
    <item>
      <title>"The New mod_proxy_core" by anonymous coward</title>
      <description>Is there something like
&lt;a href="http://httpd.apache.org/docs/2.0/mod/mod_proxy.html#proxypreservehost" rel="nofollow"&gt;ProxyPreserveHost&lt;/a&gt; available in lighty?</description>
      <pubDate>Sun, 16 Jul 2006 10:03:52 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:23294e21-199f-47ee-ab46-aab0955ebdd8</guid>
      <link>http://blog.lighttpd.net/articles/2006/07/15/the-new-mod_proxy_core#comment-1767</link>
    </item>
    <item>
      <title>"The New mod_proxy_core" by chernousov</title>
      <description>Jan, check it please: &lt;a href="http://trac.lighttpd.net/trac/ticket/754" rel="nofollow"&gt;http://trac.lighttpd.net/trac/ticket/754&lt;/a&gt;

Sorry for this discussion HERE but i don't know better way to get your attention to this bug.



(Btw, seems my account from trac is deleted and i'm not able to register again. &lt;a href="http://trac.lighttpd.net/trac/register" rel="nofollow"&gt;http://trac.lighttpd.net/trac/register&lt;/a&gt; gives me 404)</description>
      <pubDate>Sun, 16 Jul 2006 09:02:51 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:38979b06-c92c-4001-8e5b-199793acee21</guid>
      <link>http://blog.lighttpd.net/articles/2006/07/15/the-new-mod_proxy_core#comment-1766</link>
    </item>
    <item>
      <title>"The New mod_proxy_core" by Jan Kneschke</title>
      <description>chernousov: can you open the ticket again please. I removed the wrong ticket-id when I was cleaning up the ticket-spam. Sorry about that.</description>
      <pubDate>Sun, 16 Jul 2006 08:18:18 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:38fbdb69-689a-4ad4-944f-2bedefbd52b7</guid>
      <link>http://blog.lighttpd.net/articles/2006/07/15/the-new-mod_proxy_core#comment-1765</link>
    </item>
    <item>
      <title>"The New mod_proxy_core" by Uwe</title>
      <description>That sounds really great. If you are working on mod_proxy, can you please add compression support to it?

Thank you very much</description>
      <pubDate>Sun, 16 Jul 2006 07:48:33 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:fe18e9d4-5e7e-4453-8fb9-1dea2a95b8f4</guid>
      <link>http://blog.lighttpd.net/articles/2006/07/15/the-new-mod_proxy_core#comment-1764</link>
    </item>
    <item>
      <title>"The New mod_proxy_core" by chernousov</title>
      <description>Jan, those changes are great, but where is ticket #755 "fastcgi can't handle response 8k"? I made it 14/jul, but now it's deleted - check &lt;a href="http://trac.lighttpd.net/trac/ticket/755" rel="nofollow"&gt;http://trac.lighttpd.net/trac/ticket/755&lt;/a&gt;
This error is very critical, it blocks any work with fastcgi backend!</description>
      <pubDate>Sun, 16 Jul 2006 07:22:53 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:f64facd5-8118-492d-8d5d-903acbe82f5c</guid>
      <link>http://blog.lighttpd.net/articles/2006/07/15/the-new-mod_proxy_core#comment-1763</link>
    </item>
    <item>
      <title>"The New mod_proxy_core" by Damien Tanner</title>
      <description>Great news indeed, I among many will look forward to the new mod_proxy!</description>
      <pubDate>Sat, 15 Jul 2006 23:00:24 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:69bf50fe-314b-47a7-beb3-a085120af664</guid>
      <link>http://blog.lighttpd.net/articles/2006/07/15/the-new-mod_proxy_core#comment-1760</link>
    </item>
    <item>
      <title>"The New mod_proxy_core" by Sebastian</title>
      <description>This is great news. Lighty + mod_proxy + Mongrel will be a splendid solution for Rails deployment and beyond; all that reactionary Apache talk was sure making me feel queasy. :)

btw, Jan, it was very nice meeting you at RailsConf. Thanks for all the great work.</description>
      <pubDate>Sat, 15 Jul 2006 21:30:56 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:579255d0-d667-4b17-a012-fb0bb8513c60</guid>
      <link>http://blog.lighttpd.net/articles/2006/07/15/the-new-mod_proxy_core#comment-1759</link>
    </item>
  </channel>
</rss>
