2017-10-16 13 views
0

私はワニスキャッシュサーバーを持っています。私は3つのホストだけがURLまたはドメインをパージすることを許可したいと思います。私は、公式ウェブサイトとしてパージするため、以下のワニスの設定を使用することは言う:ワニスは任意のIPからのパージを許可します

curl -X PURGE "domain_name.com" 

I:

backend web_servers { 
     .host = "192.168.1.20"; 
     .port = "80"; 
     .probe = backend_healthcheck; 
    } 


    acl purge { 
      "localhost"; 
      "192.168.1.0"/24; 
      "PUBLIC_IP";    
    }  

    sub vcl_recv { 

     if (req.method == "PURGE") 
      { 
        if (!client.ip ~ purge) 
        { 
          return(synth(405,"Not allowed.")); 
        } 
        return (purge); 
      } 
## Rest of vcl_recv 
} 

問題は、次のcurlコマンドを実行したときに、私は任意のIPアドレスからURLを消去することができるということですパージセクションに記載されているIPだけが管理ポートからURLをパージすることができます6082ポート80からの他のIPはありません。

答えて

1

私の問題を解決しました。愚かな間違い。私のワニスサーバはプロキシの背後にあるので、 "client.ip"を使って許可されたIPアドレスをチェックすると、すべてのIPは127.0.0.1になります。私はACLパージを削除し、次の行に置き換え:これらのものと

if (!client.ip ~ purge) 
{ 
    return(synth(405,"Not allowed.")); 
} 
return (purge); 

if (req.http.X-Forwarded-For == "PUBLIC_IP, 127.0.0.1" || req.http.X-Forwarded-For == "192.168.1.2, 127.0.0.1") 
{ 
    return (purge); 
} 
return(synth(405,"Not allowed.")); 

と今ではすべてがうまく働いているし。

関連する問題