FAQ

Page Discussion Edit History

NginxHttpEventsModule

Contents

Edit section: Synopsis Synopsis

Controls how Nginx deals with connections.

Edit section: Directives Directives

Edit section: accept_mutex accept_mutex

Syntax: accept_mutex [ on | off ]

Default: on

nginx uses accept mutex to serialize accept() syscalls.

Edit section: accept_mutex_delay accept_mutex_delay

Syntax: accept_mutex_delay Nms;

Default: 500ms

If a worker process does not have accept mutex it will try to aquire it at least after this delay. By default delay is 500ms.


Edit section: debug_connection debug_connection

Syntax: debug_connection [ip | CIDR]

Default: none

Since 0.3.54 this option support CIDR address format

This option gives you the ability to write debug log only for the clients of this IP/NET.

Several different directives are possible.

Example:

error_log /var/log/nginx/errors;
events {
  debug_connection   192.168.1.1;
}

Edit section: devpoll_changes devpoll_changes

Edit section: devpoll_events devpoll_events

Edit section: kqueue_changes kqueue_changes

Edit section: kqueue_events kqueue_events

Edit section: epoll_events epoll_events

Syntax: devpoll_changes

Default:

These directives specify how many events may be passed to/from kernel, using appropriate method.

The default devpoll values are 32, the rest are 512.

Edit section: multi_accept multi_accept

Syntax: multi_accept [ on | off ]

Default: off

multi_accept tries to accept() as many connections as possible after nginx gets notification about a new connection.



Edit section: rtsig_signo rtsig_signo

Syntax: rtsig_signo

Default:

nginx uses two signals when the rtsig method is used. The directive specified the first signal number. The second is plus 1.

By default rtsig_signo is SIGRTMIN+10 (40).


Edit section: rtsig_overflow_events rtsig_overflow_events

Edit section: rtsig_overflow_test rtsig_overflow_test

Edit section: rtsig_overflow_threshold rtsig_overflow_threshold

Syntax: rtsig_overflow_*

Default:

These directives specifies how to handle rtsig queue overflows. When overflow occurred nginx flushes rtsig queue, then it handles events switching between poll() and rtsig. poll() handles consecutively all unhandled events, while rtsig periodicaly drains queue to prevent a new overflow. When overflow is handled completely, nginx switches to rtsig method again.

The rtsig_overflow_events specifies the number of events to be passed via poll(). The default is 16.

The rtsig_overflow_test specifies after which number of events handled by poll() nginx will drains rtsig queue. The default is 32.

The rtsig_overflow_threshold works in Linux 2.4.x only. Before to drain rtsig queue nginx looks in a kernel how the queue is filled up

The default is 1/10. "rtsig_overflow_threshold 3" means 1/3.

Edit section: use use

Syntax: use [ kqueue | rtsig | epoll | /dev/poll | select | poll | eventport ]

Default:


If you have more than one event-model specified at the ./configure script, then you can tell nginx which one do you want to use. By default nginx looks for the most suitable method for your OS at ./configure time.

You can see the available event-models and how you can activate it at the ./configure state here


Edit section: worker_connections worker_connections

Syntax: worker_connections number

Default:

The worker_connections and worker_proceses from the main section allows you to calculate maxclients value:

max_clients = worker_processes * worker_connections

In a reverse proxy situation, max_clients becomes

max_clients = worker_processes * worker_connections/4

Since a browser opens 2 connections by default to a server and nginx uses the fds (file descriptors) from the same pool to connect to the upstream backend


Edit section: References References