nginx is an open source HTTP server, originally created to solve the 10,000 concurrent connections problem.


  • HTTP server and proxy.
  • Mail proxy for POP3 and IMAP.
  • Generic TCP/UDP proxy.


  • server {} blocks represent individual virtual hosts, matched by a listen address and optional server_names.
  • Modules provide non-core functionality, and can either by statically built into the nginx binary or loaded as dynamic modules with load_module.


Signals can be sent either via the nginx -s switch or by sending them to a running nginx master process.

Action-sPOSIX signals
Fast shutdownstopTERM, INT
Graceful shutdown (wait for workers to finish processing)quitQUIT
Gracefully shutdown worker processesN/AWINCH
Reload configurationreloadHUP
Reopen log filesreopenUSR1
On-the-fly executable upgradeN/AUSR2

It's also possible to directly signal worker processes, though ordinarily the master would coordinate this.

ActionPOSIX signals
Fast shutdownTERM, INT
Graceful shutdownQUIT
Reopen log filesUSR1
Terminate abnormally for debuggingWINCH


Directive types

  • Normal directives have one value per-context, and values specified deeper in a nested structure will take precedence.
  • Array directives simply add a value to a set of values, leaving existing values in place.
  • Action directives immediately perform an action, halting processing of other conditions and actions.


  • http {}
    • server {}
      • location {}