Am too using Cloudflare and below are my IIS setings (somewhat illogical yet they seem to work OK for me):
Output Caching:
Prevent All Caching for .axd, .css, .gif, .jpg, .js and .png file both for User Mode Policy and Kernel-Mode Policy.
Edit Feature Settings:
- Enable cache
- Enable kernel cache
- Maximum cached response size (in bytes): 262144
With these settings I get ff. Response Headers (for default.css):
CF-Cache-Status: HIT
CF-RAY
2068753265901a87-DUS
Cache-Control
public,
max-age=604800
Connection
keep-alive
Date
Wed, 15 Jul 2015 21:11:05 GMT
Etag
"0805185f892d01:0"
Expires
Wed, 22 Jul 2015 21:11:05 GMT (note here: cache is 7 days here which was set with Cloudflare)
Last-Modified
Wed, 20 May 2015 12:28:48 GMT
Server
cloudflare-nginx
Vary
Accept-Encoding
Of course I don't claim the settings couldn't be tweaked or streamlined even more but as mentioned above - they work for me.
All of these assume that the crucial settings are also applied with Cloudflare.