lighttpd is a lightweight web server used mainly to serve static files. Youtube used lighttpd before it was purchased by Google. I was using lighttpd with some file hosting/image hosting sites with mod_secdownload that allows the link to expire after predefined time. These days i use Nginx as it is more popular. Only see lighttpd […]
lighttpd mod alias
mod_alias lighttpd module allow you to map urls to file system. For example, you need /mrtg show /var/www/mrtg You need to first enable mod_alias in lighttpd.conf
1 |
vi /etc/lighttpd/lighttpd.conf |
Find
1 2 3 4 |
server.modules = ( # "mod_rewrite", # "mod_redirect", # "mod_alias", |
and remove the comment # on “mod_alias” line. It should look like
1 2 3 4 |
server.modules = ( # "mod_rewrite", # "mod_redirect", "mod_alias", |
To add alias, add following in lighttpd.conf
1 |
alias.url = ( "/mrtg/" => "/var/www/mrtg/" ) |
If you need to add […]
bind lighttpd to one ip address
I want to bind lighttpd on IP address 76.76.18.20, so i can use other IP’s for Apache, Apache have “Listen” option to bind apache to specific IP address.
1 |
vi /etc/lighttpd/lighttpd.conf |
Find
1 |
#server.bind = "127.0.0.1" |
Replace with
1 |
server.bind = "76.76.18.20" |
See lighttpd […]
Auto restart lighttpd on crash
To restart lighttpd if it went down or crashed, create a file check_lighttpd.sh
1 2 |
mkdir /usr/serverok vi /usr/serverok/check_lighttpd.sh |
With the following content
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
#!/bin/sh /usr/bin/wget --tries=1 --timeout=30 -O /dev/null http://localhost:80/up.html if [ $? -ne 0 ]; then ( killall -9 lighttpd; killall -9 gam_server; killall -9 php-cgi; /etc/init.d/lighttpd stop; mv /var/log/lighttpd/access.log /var/log/lighttpd/access.$(date +%Y%m%d_%H).log mv /var/log/lighttpd/error.log /var/log/lighttpd/error.$(date +%Y%m%d_%H).log /etc/init.d/lighttpd start; echo 'restarting lighttpd' `ps aux` | mail -s "`hostname` restarting lighttpd `who | awk '{print $6}'`" you@yourdomain.extn datetime=`date "+%Y%m%d %H:%M:%S"` echo $datetime "failure">>/var/log/lighttpd/check.log ) fi |
Make it executable
1 |
chmod 755 /usr/serverok/check_lighttpd.sh |
Create a file up.html on web root of your web site
1 |
echo "up" > /path/to/docroot/up.html |
Now set a cronjob to run every 5 minutes
1 |
crontab -e |
Add following cronjob
1 |
*/5 * * * * /usr/serverok/check_lighttpd.sh 1> /dev/null 2> /dev/null |
See lighttpd […]