Lighttpd client side optimization with mod_expire to controls the expire http header

The last time I wrote about Lighttpd optimization tips here and here.

You must optimize server side as well as client side. Client side optimization includes CSS code, javascript and images as they would hardly change.

We can force client web browser not to download files for particular day / hour.

Lighttpd comes with mod_expire which controls the Expire header in the Response Header of HTTP/1.0 messages. It is useful to set it for static files which should be cached aggressively like images, stylesheets or similar.

Step # 1: Make sure mod_expire is active

Open lighttpd config file - /etc/lighttpd/lighttpd.conf
# vi /etc/lighttpd/lighttpd.conf
You must load mod_expire before all other module to avoid ill side effects.

server.modules              = (
                               "mod_expire",
                               "mod_redirect",
                               "mod_alias",
                               "mod_rewrite",
                               "mod_access",
                               "mod_auth",
                               "mod_status",
                               "mod_fastcgi",
                               "mod_compress",
                               "mod_accesslog" )

Step # 2: Set expiration for /js/ and other dirs

Assigns a expiration to all files below the specified path:

expire.url = (
                  "/js/"     => "access 1 days",
                  "/css/"    => "access 3 days",
                  "/figs/" => "access 7 days"
               )

You can also add conditional tags:

$HTTP["url"] =~ "^/assets/figs/" {
     expire.url = ( "" => "access 12 hours" )
}

Save and close the file. Restart lighttpd:
# /etc/init.d/lighttpd restart

Want to read Linux tips and tricks, but don't have time to check our blog everyday? Subscribe to our daily email newsletter to make sure you don't miss a single tip/tricks. Subscribe to our weekly newsletter here!

{ 0 comments… add one now }

Leave a Comment

You can use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Previous post: nixCraft FAQ Roundup

Next post: Howto create ringtones with Linux and open source software