@nathobson did a good job, few additional points:
- The cache is “low” because there’s no intelligent expiry. It’s just a set time. You could raise it if you want, but if you update a post (for example), the cache won’t be invalidated and users wouldn’t see the updates for whatever you set the time to. 30s is a tradeoff where it’s “real time” enough to not really matter for most people.
- No you don’t need any plugins unless you’d want to use permanent caching with explicitly expiry. WP caching plugins will usually handle intelligently invalidating any necessary cache when you update any resource.
- Gzip caching is enabled, but you could pre-gzip assets which removes the burden from Nginx doing it on the server. See https://github.com/roots/trellis/issues/864
The other thing Trellis doesn’t do out of the box is enable browser caching for static assets. You can definitely do this yourself though.