At home I have a custom-built NAS that I use for all of my storage needs. I use it all the time to store files like game client downloads and backups of my games on Steam. It just makes it easier to restore after an install or when a friend needs to copy a game over. Recently however I was referred to LANcache.
EDIT 3/2/2017
As pointed out by some commenters, the previous nginx config was incorrect and missing some server names. This post has been updated to reflect those changes.
I had to redo my caching server recently and I can 100% confirm that this guide will work correctly. Nothing like a clean install!