Nginx Map Module Help


#1

Hello,

I am looking at using Nginx and specifically the Map Module.

http://wiki.nginx.org/NginxHttpMapModule

I have used the rewrite map stuff in Apache, and I know in Apache you
can
load a key / value pair list from a text file. I had assumed looking at
the
examples on the Wiki that the values needed to be included with the
configuration, but then I noticed that at the end of the Wiki page on
the
Nginx Map Module there was this:

include — the maps will be included from a file, or even from multiple
files
when using wildcards.

How does this work? I was hoping someone with some experience can
elaborate
on this feature, as I was unable to find additional information on this.

  1. So can the values actually be pulled from a file instead?
  2. What type of file, what format?
  3. If the map file is updated, does Nginx need to be restarted for the
    changes to take effect?

I apologize if these questions have already been answered somewhere, I
searched and searched and only found that single reference to the
“include”
support in the Map Module.

Thanks,

John


#2

Hello!

On Thu, Mar 19, 2009 at 01:18:41PM -0500, Resi C. wrote:

Nginx Map Module there was this:
changes to take effect?

I apologize if these questions have already been answered somewhere, I
searched and searched and only found that single reference to the “include”
support in the Map Module.

http://wiki.nginx.org/NginxHttpMainModule#include

It’s just include of configuration chunk. If it’s updated - it’s
effectively updated configuration, and you should instruct nginx
to reload configuration as usual via SIGHUP.

Maxim D.


#3

I think it simply references the include support in nginx core:
http://wiki.nginx.org/NginxHttpMainModule#include

It means you can have files that contain the map directives and use
include
to include them into your configuration as needed.

  • Merlin

#4

Okay thanks, I wasn’t sure.

I am no expert, but I looked at the nginx source and I saw this in the
map
module code:

return ngx_conf_parse(cf, &file);

and some other references to a file.

So are you saying that we can use the include command from the main
module
to include a file defining a map, or does the Map module have its own
include functionality?

Thanks,

John