I spent some time this week optimising a new site, specifically looking at some of the YSlow recommendations.
For a smaller, low traffic site, some of the recommendations are over-kill. I'm not paying for a CDN. But I did find some of the tidbits valuable, specifically around what Apache does not do by default.
This may make sense for a large site, where you are concerned with minimising bandwidth. But on a smaller site like mine, I'm more concerned with minimising the number of HTTP connections when the user is rapidlly clicking between pages. I don't care if they have to hit the server again per resource every once in a while, just as long as in the average case they are only loading one HTML page per request.
I picked an Expire window of just 12 hours. This is long enough so that during a single session, the user will only request each resource once. But it's short enough that if I push an actual change at night, everyone will get it in the morning.
To make the actual change, you need to enable the expire_mod, and then set the actual Expires value per MIME type.
>cd /etc/apache2 >sudo ln -s ../mods-available/expires.load mods-enabled/expires.load