
私は、ポート 8080 の Apache の背後でポート 80 をリッスンする Varnish を設定し、ポート 8081 に Nginx を配置する予定です。私の VPS のコントロール パネルは Apache のみをサポートしていますが、VPS でホストしているサイトの 1 つを Nginx でテストしたいのですが、Varnish がすでに 80 にあるため、同じポートに Nginx を配置することはできません。
私はApacheを完全に削除したくありません。なぜなら、VPSのコントロールパネルにアクセスするためにまだApacheが必要なからです。セントラApacheが8080のどこに位置しているかを正確に知るには、ここOP は Apache 上で異なる IP に 2 つの異なるドメインを持つことを望んでいたので、実際には役に立ちません。
また、VCL でディレクティブを使用する方法についてどこかで読んだのですserver.port
が、どのように実行すればよいかわかりません。私のdefault.vcl
例の一部は次のようになります。
backend default {
.host = "127.0.0.1";
.port = "8080";
}
PS: Nginx はまだインストールしていません。
答え1
ここでは、Varnish に追加のバックエンドを設定し、いくつかのリクエストをそれにルーティングします。
まず、Nginx の新しいバックエンドを追加します。
backend nginx {
.host = "127.0.0.1";
.port = "8081";
}
次に、いくつかのリクエストをそれにルーティングできます。これは通常、vcl_recv
サブルーチンで行われます。たとえば、Sentora がドメイン経由でアクセスされる場合sentora.example.org
:
sub vcl_recv {
if (req.http.host ~ "(?i)^sentora.example.org$") {
# Route requests to sentora.example.org to the old Apache backend.
set req.backend = default;
} else {
# Everything else to nginx.
set req.backend = nginx;
}
}
見る高度なバックエンド構成より多くの例については、Varnish 設定言語ドキュメンテーション。