map vs if

Валентин Бартенев vbart на nginx.com
Вт Янв 26 14:27:28 UTC 2016


On Tuesday 26 January 2016 15:30:33 Alex Domoradov wrote:
> Привет,
> 
> много читал, что map предпочтительный использовать вместо if, из-за
> особенностей последнего. Но никак не получается заменить if
> 
> location / {
>    if (http_x_debug) {
>       add_header X-DEBUG "L1" always;
>    }
> }
> ...
> location ~/locationX {
>    if (http_x_debug) {
>       add_header X-DEBUG "LX" always;
>    }
> }
> 
> и проверяю так
> 
> # curl -H "X-DEBUG: DEBUG" -I http://127.0.0.1:9898/
> HTTP/1.1 200 OK
> Server: nginx/1.8.0
> Date: Tue, 26 Jan 2016 13:28:40 GMT
> Content-Type: text/html
> Content-Length: 612
> Last-Modified: Tue, 21 Apr 2015 15:38:08 GMT
> Connection: keep-alive
> ETag: "55366ee0-264"
> X-DEBUG: L1
> Accept-Ranges: bytes
> 
> Если убираю хедер X-DEBUG, то соответственно LX не выводится. А как в моем
> случае можно заменить if на map?

  map $http_x_debug $xdbg {
      default  LX;
      ""       "";
  }

  add_header X-DEBUG $xdbg;

--
Валентин Бартенев


Подробная информация о списке рассылки nginx-ru