Proxy Buffering
Typically, proxy buffering will only help you if you create very large web pages or send large files. it is fairly easy to set up, regardless, but you will need to adjust the buffer size to the size of your largest pages + 20% (any page that does not fit in the buffer is written to disk) or selectively includes proxy buffering your largest pages.
docs: http://wiki.nginx.org/HttpProxyModule#proxy_buffering
Caching
I know little about your application and how dynamic its content is, but setting up the correct generation of Cache Control / ETAG headers on your application will be the first thing you want to take a look at. This is what will allow Nginx to know what is safe for proxies. In addition, you can configure several cache zones to control the amount of space that your caches occupy on disk.
proxy_cache one; proxy_cache_path /data/nginx/cache/one levels=1:2 max_size=1G keys_zone=one:1000m;
You will need rules to bypass the cache (for debugging or programmatically)
proxy_cache_bypass $cookie_nocache $arg_nocache $arg_comment; proxy_cache_bypass $http_pragma $http_authorization;
You will also want your application to unconditionally serve the cache when your application throws errors:
proxy_cache_use_stale error timeout invalid_header;
docs:
Gzip
Enabling gzip on your site is always a trade-off between processor time and bandwidth. True, you can reduce the amount of data transmitted over the cable if you upload your content, but if you work in T1 Micro, you will greatly limit your bandwidth for proxying requests due to the use of the CPU. Generally, gzip is a much better idea for static content that you can pre-archive and then serve again and again.
(Yes, gzip supports json, but this is because gzip becomes a wire format and is transparently unpacked by the client. You should read Content-Encoding: gzip )
docs: http://betterexplained.com/articles/how-to-optimize-your-site-with-gzip-compression/
miscellanea
You will also want to set several different settings:
# Directives turn off 404 error logging. location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ { log_not_found off; }