The NGINX server is made up of modules, which are controlled by directives defined inside the nginx.conf configuration file. For instance, the HTTP module is configured using the http directive in nginx.conf. A directive is basically a unit of instruction/setting. There are two types of directives: simple and block.
A simple directive consists of a name and one or more parameters, each separated by a space and ending with a semicolon. pid /var/run/nginx.pid; would be an example of a simple directive. On the other hand, a block directive consists of a name followed by a pair of braces ({}), inside which it may contain additional directives.
There's also the concept of context. The top-level directives exist inside the main context. Each block directive envelops the contained directives in its own context. For example, in the nginx.conf file, the worker_connections directive will be within the events context, which is itself within the main context.