Я прочитал https://www.nginx.com/resources/wiki/start/topics/depth/ifisevil/
Я хочу проверить, добавило ли мое приложение rails заголовок (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 '**';
}
}
Здесь, когда выполняется условие if, устанавливается только 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 '**';
}
}
Здесь переменная $ a установлена в 1, но снова устанавливается только My-inner-header
, а не My-outer-header
.
Я хочу проверить и убедиться, выполняются ли такие инструкции, как proxy_set_header
, или нет.