我已阅读 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
是否被执行。