Comment si les conditions de travail à l'intérieur de l'emplacement du bloc de conf nginx?

J'ai lu
https://www.nginx.com/resources/wiki/start/topics/depth/ifisevil/

Je veux vérifier si mon application rails a déjà ajouté un en-tête (Access-Control-Allow-Origin) et si elle n'a pas puis ajouter l'en-tête.

Les exemples ici ont tenté d'expliquer le comportement de if condition de nginx.conf http://agentzh.blogspot.in/2011/03/how-nginx-location-if-works.html

Mais je n'ai pas compris. L'une des questions que je me pose est ce que l'on entend lorsque l'on dit d'une directive ou d'une phase de la directive?

J'ai essayé quelques choses moi-même. Comme:

location /{
  add_header My-outer-header '*';
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header Host $http_host;
  proxy_set_header X-NginX-Proxy true; 

  if($sent_http_access_control_allow_origin != /*){
    add_header My-inner-header '**';
  }
}

Ici lorsque les si la condition est remplie, seulement My-inner-header est de définir et de ne pas le My-outer-header.

Mais quand je fais:

location /{
  add_header My-outer-header '*';
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header Host $http_host;
  proxy_set_header X-NginX-Proxy true; 
  set $a 1;
  if($a == 1){
    add_header My-inner-header '**';
  }
}

Ici $une variable est définie sur 1, mais seulement la My-inner-header est nouveau et pas le My-outer-header.

Je veux vérifier et de s'assurer si les instructions comme proxy_set_header sont arriver exécuté ou non.

OriginalL'auteur Abhishek Kumar | 2016-02-07