Nginx Map

How to Use Nginx’s map Module.

Sometimes we need to redirect old URI of our web service to new URI, without changing our legacy frontend. I will walk you through Nginx’s map Module that can be used to achieve our goal.

Step 1 – Creating map file

Create file called urimap at root folder (/etc/nginx/urimap) of Nginx and fill it in with:

/old/uri1	/new/uri1;
…
/old/uriX	/new/uriX;

where two pars represent old and new URI, separated with TAB.

Step 2 – Edit configuration file

Include following text at the top of your nginx.conf configuration file:

map $uri $new_uri {
      include /etc/nginx/uri_map;
  }

and following text to server block:

server {
    listen 80;
    server_name XXX;
    ...
    # Old static views redirect
    if ($new_uri) {
        rewrite ^ $new_uri permanent;
    }
    ...
}

Step 3 - Reload nginx

Use follwoing command to reload nginx configurations:

$ sudo systemctl reload nginx.service

Check if redirection works with:

$ curl -I domain.name.com/old/uri
HTTP/1.1 301 Moved Permanently
Server: nginx/1.10.3
Date: Sat, 15 Jul 2017 05:18:55 GMT
Content-Type: text/html
Content-Length: 185
Connection: keep-alive
Location: https://domain.name.com/old/uri1
Avatar
Ilya Mochalov
Software engineer

My interests include DevOps, IoT, Minimalism