1

シナリオ: 多数の異なるサブドメインを持つ Apache/Varnish セットアップがあります。すべてのサブドメインには、サイト対応の独自の VirtualHost ファイルがありますが、すべて同じ Wordpress インストールで実行されます。1 つを除いて: Sqlbuddy (Web ベースの SQL 管理) のスタンドアロン サイトである sqlbuddy.mydomain.com。

問題: Varnish は、sqlbuddy を除くすべてのサイトで問題なく動作します。まったくアクセスできず、「エラー 503 バックエンドのフェッチに失敗しました」というエラーが表示されることがあります。アクセスできる場合もありますが、ログインしようとすると同じエラーが発生します。ログインしようとしても何も起こらないこともあります。ログインは成功しますが、何かをしようとするとエラーが発生することがあります。

私が望む/試したこと: このサイトはキャッシュを必要としないので、Varnish に完全に無視させたい。

これは私が試したことです(vcl_recvの上部にあります):

if (req.http.host == "sqlbuddy.mydomain.com" && req.url == "/") {
return (pass);
}

それのさまざまなバリエーション(req.url、return(pip);などなし)ですが、それでもエラーが発生します。また、Varnish をバイパスするために VirtualHost を別のポートに配置しようとしましたが、sqlbuddy はそれをリッスンしないようです。

それ以外の場合は、次の VCL を使用します: https://gist.github.com/nadirlc/46987b42447cf8e3be79 で、VirtualHosts は 127.0.0.1:8008 をリッスンします。

Varnishでそれを行う他の方法はありますか?

さらに情報が必要な場合、または明らかな情報を見逃している場合はお知らせください。ワニスに関しては、私は正確には最高ではありません。

4

1 に答える 1

1

~ の代わりに正規表現マッチングを使用してみましたか?

if (req.http.host ~ "sqlbuddy.mydomain.com") {
return (pass);
}

あるいは

if (req.http.host ~ "sqlbuddy") {
return (pass);
}
于 2016-02-27T23:42:18.467 に答える