This config is dependent on having a ~/lighttpd directory setup as described in that manual. Also, you must have the restart.rb script (again from my previous snippet) in the lighttpd folder.
As before, remember to swap out your USERNAME, DOMAIN, and PORT.
The first check here is that a lighttpd process is running. If not then it calls restart.rb which will kill any zombie dispatchers and restart lighttpd.
The second check is more of a departure from the original suggestion. Rather than checking that a specific file is generating the expected output, I go right to the source and verify that lighttpd is responding with an HTTP header on the port you were assigned. This is a pure indication of whether lighttpd is responsive on the correct port. It won't be fouled up by application errors or apache forwarding misconfiguration. More importantly, it won't generate a flood of restarts due to an unrelated code error.
Also, you will notice I set the checkinterval to 10 minutes. I felt this was a good compromise between keeping lighttpd up and saturating the server with unnecessary processing.
name: lighttpd checkcommand: /bin/ps axww checkregex: /lighttpd/ onfailcommand: /home/USERNAME/lighttpd/restart.rb checkinterval: 600 aftercommandwait: 120 name: lighttpd-external checkcommand: /usr/local/bin/curl -I http://YOURDOMAIN.com:YOURPORT checkregex: /^HTTP/s onfailcommand: /usr/bin/killall -9 lighttpd; /home/USERNAME/lighttpd/restart.rb checkinterval: 600 aftercommandwait: 120