2017-10-03 15 views
0

に基づいnginx.confhttpブロックは、以下が含まれています含まれるファイルでNginxは:スキップHTTP基本認証IPまたは要求ヘッダー

auth_basic $development_exceptions; 

geoモジュール変数を設定するために使用される:

geo $development_exceptions { 
    default "Not allowed."; 

    1.2.3.4 "off"; 
} 

mapモジュールは、同じインクルードファイル内のユーザーエージェント変数を使用します。

map $http_user_agent $development_exceptions { 
    default "Not allowed."; 

    ~*(header-text) "off"; 
} 

しかし、開発例外変数の設定は競合しているので、2番目のコードが適用されると、最初のコードは何もしなくなります。

どのように両方の戦略を組み合わせることができますか?この場合、nginx.confを変更することはできません。

+0

解決策が必要で、あなたは 'nginx.conf'を変更したくないhは何が起こるかを制御する? –

+0

ホストの構造は、インクルードを制御できるように設定されていますが、 'nginx.conf'では制御できません。これを行う唯一の方法が 'nginx.conf'である場合、私はその解決策にも興味があり、私はそれを要求することができます。 – linden2015

+0

あなたが投稿した部品は、ソリューションを試すために編集できますか?これらは両方ともインクルードに含まれているのでしょうか、それともnginx.confに直接入っていますか? –

答えて

1

次にあなたがand条件を望むなら、あなたは

の下に行うことができますあなたが or条件を使用する場合さて、あなたは

map $development_exceptions_agent$development_exceptions_geo $development_exceptions { 
    ~off "off"; 
    default "Not allowed."; 
} 

の下に行うことができます

geo $development_exceptions_geo { 
    default "Not allowed."; 
    1.2.3.4 "off"; 
} 

map $http_user_agent $development_exceptions_agent { 
    default "Not allowed."; 

    ~*(header-text) "off"; 
} 

アプローチの下に試してみてください

map $development_exceptions_agent$development_exceptions_geo $development_exceptions { 
    ~offoff "off"; 
    default "Not allowed."; 
} 
+0

あなたの 'または'コードはxorのように読まれます。正しい? 私はあなたの解決策を試し、あなたに連絡します。 – linden2015

+0

私はそれを間違って読んだ。 '〜オフ'は正規表現で、 'オフ'にマッチします。助けてくれてありがとう。 – linden2015