Performance of map directive

Igor Sysoev igor at
Sat Sep 3 15:50:20 UTC 2011

On Sat, Sep 03, 2011 at 05:11:07PM +0300, Calin Don wrote:
> Hi,
> I understood that if you have only strings in a map directive the access
> time is O(1).


> What if you have the hostnames directive enabled and some of the items are
> in the format *

nginx tests address by its parts, first "com", then "example".
So access of the operation varies from O(1) to O(N) where N is number of
parts of longest name. For example, if you test only against


then this will be O(1). If you test, it will be O(3).

> What about if you mix with regular expressions?

The regular expressions tested sequentially.

nginx tests map in the following order:

1) exact names,
2) *.names,
3) names.*,
4) regexes.

The first match stops the tesing.

Igor Sysoev

More information about the nginx mailing list