Я прочитал https://www.nginx.com/resources/wiki/start/topics/depth/ifisevil/Как это сделать, если условие работает внутри блока местоположения в nginx conf?
Я хочу, чтобы проверить, если мое приложение рельсы уже добавил заголовок (Access-Control-Allow-Origin
), и если он не затем добавить заголовок.
примеры здесь пытались объяснить поведение if
состояния в nginx.conf http://agentzh.blogspot.in/2011/03/how-nginx-location-if-works.html
Но я не понял. Один из вопросов, который у меня есть, - это то, что имеется в виду, когда они говорят директиву или фазу?
Я сам пробовал некоторые вещи. Как:
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 '**';
}
}
Здесь когда, если условие выполняется, только My-inner-header
установлен и не в My-outer-header
.
Но когда я делаю:
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 '**';
}
}
Здесь $ переменная устанавливается в 1, но только My-inner-header
установлен снова и не в My-outer-header
.
Я хочу проверить и убедиться, что выполняются инструкции, такие как proxy_set_header
или нет.