PRE-RELEASE: lighttpd-1.5.0-r1992 12

Posted by jan Thu, 06 Sep 2007 22:21:00 GMT

Some time passed since the last pre-release, time for an update.

Everyone who runs 1.5.0 already has to upgrade to get fixes several vulnerabilities that got fixed in the 1.4.x branch already.

If this release passes your requirements it will be the last 1.5.0 pre-release. Afterwards we will start the the normal 1.5.x series and will add the missing features in 1.5.1 and later.

Download: http://www.lighttpd.net/download/lighttpd-1.5.0-r1992.tar.gz

md5sum: b62e2442ee0f3395844b54385b14397a

Changes

  • added native support for mingw32
  • added experimental option to compile without glib
  • fixed mod_uploadprogress
  • fixed endless loop on freebsd-sendfile (#1289)
  • fixed compile in IRIX and HP/UX
  • fixed hardcoded font-sizes in mod_dirlisting (#1267)
  • fixed different ETag length on 32/64 platforms (#1279)
  • fixed conditional dir-listing.exclude (#930)
  • fixed CONTENT_LENGTH = -1 in mod_cgi (#1276)
  • fixed typecast of NULL on execl() (#1235)
  • fixed extra Content-Length header on 1xx, 204 and 304 (#1002)
  • fixed mysql server reconnects (#518)
  • fixed prctl() usage (#1310, #1333)
  • fixed FastCGI header overrun in mod_proxy_backend_fastcgi (reported by mattias@secweb.se)
  • fixed mem-leak in mod_auth (reported by Stefan Esser)
  • fixed crash with md5-sess and cnonce not set in mod_auth (reported by Stefan Esser)
  • fixed missing check for base64 encoded string in mod_auth and Basic auth (reported by Stefan Esser)
  • fixed possible crash in Auth-Digest header parser on trailing WS in mod_auth (reported by Stefan Esser)

PRE-RELEASE: lighttpd-1.5.0-r1857.tar.gz 19

Posted by jan Mon, 21 May 2007 12:22:00 GMT

Baby-steps, ...

As we are running this release on lighttpd.net it is time to push it out to more testers.

Download: http://www.lighttpd.net/download/lighttpd-1.5.0-r1857.tar.gz

Changes:
  • mod-proxy-core
  • added support to rewrite PATHINFO and SCRIPTNAME
  • fixed setenv.environment support
  • fixed random crashes
  • fixed keep-alive announcement if keep-alive is disabled
  • fixed handling of status 304 from the backends
  • fixed handling of trailing CRLF after a KeepAlive POST
  • fixed the output of lighttpd -p to result in a real configfile
  • fixed loading of default modules if they are explicitly specified

lighttpd.net runs on 1.5.0 10

Posted by jan Wed, 09 May 2007 10:24:00 GMT

All the lighttpd.net domains (blog, trac, www, xcache, upload, ...) are now running lighttpd 1.5.0-trunk. It took some debugging to sort out problems with the way trac wants to handle PATH_INFO [1841] and how ruby handles fastcgi-keepalive requests via Unix-Sockets [1850] [1849]

In case you see that one of the sites is down, ping me (weigon) on IRC (irc.freenode.net). The server is running in valgrind and should provide enough information to fix the problem.

compression

All the content is sent as compressed content if the client supports it. As some browsers have problems with compressed javascript and CSS we only enabled it for Firefox for now.

deflate.mimetypes = ( "text/html" )

$HTTP["useragent"] =~ "Firefox" {
  deflate.mimetypes += ( "text/javascript", "text/css" )
}

trac

For the trac I use:

$HTTP["host"] =~ "^trac\.lighttpd\.net" {
    # alias, ...

    $HTTP["url"] =~ "^/trac/" {
        proxy-core.backends = ( "127.0.0.1:9090" )
        proxy-core.protocol = "fastcgi" 
        proxy-core.rewrite-request = (
           "_pathinfo" => ( "^/trac(/.*)" => "$1" ),
           "_scriptname" => ( "^(/trac/)" => "$1" )
        )
    }
}

the rewrites tune the PATH_INFO and SCRIPT_NAME settings to the needs of trac. It should also handle the old bug around trac without a prefix.

rails + fastcgi

Thanks to the rails apps we run on blog.lighttpd.net and www.lighttpd.net I could trace down some nasty bugs. One is still open and is around the fastcgi keepalive + fcgi.rb. It isn’t tracked down yet, not enabling it seems to be safe for now.

For mephisto we are using the cleanurl.lua to get rid of the server.error-handler-404.

PRE-RELEASE: lighttpd-1.5.0-r1811.tar.gz 22

Posted by jan Fri, 20 Apr 2007 13:49:00 GMT

... or eating our’s own dog food.

We are now running lighttpd 1.5.0-r1811 at lighttpd.net next to the lighttpd-1.4.13 [official debian] package.

This is one way to say that this is a Release Candidate and that we want to expose it to more testers out there. Update: lighttpd.net is running on 1.5.0-trunk/

As working demo you have:

Yes, that’s mod_uploadprogress in action :)

PRE-RELEASE: lighttpd-1.5.0-r1691.tar.gz 8

Posted by jan Fri, 23 Feb 2007 10:18:00 GMT

A new pre-release on the road to stabilize 1.5.0.

http://www.lighttpd.net/download

Most of the work went into mod-proxy-core and new platforms:

  • m-p-c can handle uploads via APJ13 which required some larger patches
  • we should compile fine on solaris and IRIX again
  • kqueue should work too again
  • we compile natively on win32 (staticly and dynamicly)

The is the first official release that compiles natively on win32. Read the instructions on docs/build-win32.txt if you want to build yourself. It even starts :)

I have to say thanks to all the testers on the IRC channel, to jtiai for the win32 patches and jakabosky for the hard work on mod-proxy-core.

ChangeLog

  • added mod_cgi again
  • added cmake on win32 (static and dynamic)
  • fixed http-chunk decoding
  • fixed several hangs when compression is used
  • fixed invalid Content-Length headers in Range-responses
  • fixed handling of out-of-fds
  • fixed support for Solaris and compilation on IRIX
  • fixed the kqueue event-handler
  • fixed mem-leak in Range requests
  • fixed EFAULT in gthread-aio

PRE-RELEASE: lighttpd-1.5.0-r1605.tar.gz 15

Posted by jan Sat, 03 Feb 2007 22:50:00 GMT

A lot of changes made it into the svn recently. It is time again to spread the code to more testers than just the few early adaptors who are using the svn-trunk/

Please try out the new stuff around async-io and dynamic compression of content. Even directory-listings are now automaticly compressed. Just load mod_deflate and set
deflate.mimetypes = ( "text/html" )

Download:

updated lighttpd-1.5.0-r1605.tar.gz

ChangeLog (r1605):

  • added check for leading slashes in mod_rewrite
  • improved async-io performance for files between 4k and 16k
  • fixed compression of static files in mod_deflate
  • fixed configure check for the library providing aio_read()
  • fixed moddirlisting, modstaticfile and the internal error-pages for mod_deflate
  • fixed compilation on FreeBSD and MacOS X
ChangeLog (r1593):
  • added O_NOATIME support to the network-backends linux-sendfile and writev
  • added a portable, threaded network-backend based on glib’s gthread
  • added threaded stat()
  • added url.redirect-code to mod_redirect to set other HTTP status-codes than 302
  • added filter-API and mod_chunked and mod_deflate for dynamic compression
  • added a static balancer for mod-proxy-core
  • added $HTTP[“request-method”] and $PHYSICAL[“path”] conditionals
  • fixed X-Sendfile support in mod-proxy-core
  • fixed crash if mtime is 0
  • added cmake as experimental build-system
  • fixed urls in AJP13-protocol of mod-proxy-core
  • added support for “now” and “weeks” to mod-expire
  • added mod-magnet

1.5.0 works on win32 natively - again 15

Posted by jan Tue, 19 Dec 2006 16:45:00 GMT

Half a year ago I was traveling a bit and tried to get lighty to compile natively on win32

Some time has passed and I concentrated on the other stuff in the 1.5.0 tree, leaving the nasty win32 code in place for someone to pick up. Ben Harper aka rogojin has picked it up and released a win32 installer for the latest pre-release

A simple tests shows that staticfiles are working nicely and that http-proxying with mod-proxy-core works too. Nice work, Ben.

PRE-RELEASE: lighttpd-1.5.0-r1477.tar.gz 10

Posted by jan Mon, 18 Dec 2006 18:11:00 GMT

mod-proxy-core

Robert Jakabosky fixed and improved mod-proxy-core alot since the last pre-release:

POSIX Async IO

I added native support for POSIX AIO which might bring async io for more platforms. While Linux AIO is pretty stable the POSIX aio support is pretty experimental. Perhaps it compiles for you.

I tried to compile it on Linux and FreeBSD.

server.network-backend = "posix-aio" 

Try it

Check if it compiles and works for you.

http://www.lighttpd.net/download/lighttpd-1.5.0-r1477.tar.gz

PRE-RELEASE: lighttpd-1.5.0-r1454.tar.gz 16

Posted by jan Wed, 15 Nov 2006 22:57:00 GMT

Thanks to brave testers in #lighttpd the AIO-support is stabilizing very well and the corruptions that have been reported are fixed now.

Next to bugfixes, I implemented chunk-stealing and doubled the performance of aio for small files (100k) [16MByte/s instead of 9MByte/s].

Download: http://www.lighttpd.net/download/lighttpd-1.5.0-r1454.tar.gz

PRE-RELEASE: lighttpd-1.5.0-r1435.tar.gz 5

Posted by jan Tue, 14 Nov 2006 01:37:00 GMT

Yeah, really.

Before you jump around and empty a barrel of beer, try to compile it first. :)

Download: http://www.lighttpd.net/download/lighttpd-1.5.0-r1435.tar.gz

Finally I got some time to finish the loose ends of 1.5.0. MySQL Network MAS is going to release (hopefully) next week, giving me time to work on lighty again.

What works and what doesn’t ?

  • mod_fastcgi, mod_cgi, mod_scgi, mod_proxy are removed
    • mod_proxy_core is the replace for the above plugins
    • you have to spawn fastcgi processes with spawn-fcgi
  • mod_cml is removed and mod_magnet isn’t included yet

Linux AIO

I blogged about Linux AIO before, now you can try it out. Install libaio and build lighttpd with—with-linux-aio.

server.network-backend = "linux-aio-sendfile" 

mod-proxy-core

I checked that balancing and uploading works nicely work mod-proxy-core with fastcgi and http as protocols.

PHP

Start PHP with spawn-fcgi as documented in the manual and add

$HTTP["url"] =~ "\.php$" {
  proxy-core.balancer = "round-robin" 
  proxy-core.protocol = "fastcgi" 
  proxy-core.backends = ( "127.0.0.1:1026" )
  proxy-core.max-pool-size = 16
}

the to config.

BTW: we use FCGI_KEEP_CONN to keep the connection between lighttpd and the FsatCGI backend up as long as possible.

HTTP (mongrel)

We use keep-alive and HTTP/1.1 by default. Give it a try.

$SERVER["socket"] == ":1445" {
  proxy-core.protocol = "http" 
#  proxy-core.balancer = "round-robin" 
  proxy-core.balancer = "sqf" 
  proxy-core.backends = (
    "10.0.0.10:80", 
    "10.0.0.11:80" )
}

sqf is Shortest Queue First and is the preferred balancer if you have backends which different CPUs. See the next blog-post.

mod-upload-progress

Works.