with your config you enable for everything that ends with those extensions:
- the "disable" of the access log
- the cache header set to a very distant time in the future
This means that if someone by any chance requests an url from your application that ends in xml, you short-circuit nginx to think it should be served as a static file instead of a dynamic xml response from your app.
the web2py config instead stands by the convention that everything is supplied by a dynamic "something" (i.e. usually a controller) and that everything under "/static/" is a real static file to be served.
Optionally, it enables the same cache headers and, if you want, it enables the serving of pre-compressed static files.
PS: More on the precompression topic: usually you'd want everything served compressed. it cuts off response times considerably, because you shorten the time a resource takes to be transferred in the compressed format vs the original one (the compressed format is a gz compression, kinda like a zip archive).
But, for static files, you don't want your nginx server to use cpu cycles for every request to compress those files, because they are static and they never change.
Web2py uses the same convention: if a ".gz" file is found, it serves that instead of the original one to cut off the size of the transferred files.
So, if you have bootstrap.css and bootstrap.css.gz in your folder, with that
include /etc/nginx/conf.d/web2py/gzip_static.conf;
line you enable serving boostrap.css.gx instead of bootstrap.css without requiring nginx to compress dinamically the bootstrap.css file.
There's a script (scripts/zip_static_file.py) that creates those ".gz" files for you.
This is explained at
http://web2py.com/books/default/chapter/29/13/deployment-recipes#Compress-static-files