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の条件の動作を説明しようとしました。
しかし、私はそれを理解していません。私が持っている質問の 1 つは、指令またはフェーズ指令と言うとき、何を意味するのかということです。
私は自分でいくつかのことを試しました。お気に入り:
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
のような命令が実行されているかどうかを確認したいと思います。