У меня есть установка, в которой Varnish прослушивает порт 80 за Apache на порту 8080, в то время как я собираюсь использовать Nginx на 8081. Панель управления моего vps поддерживает только Apache, но я хочу протестировать один из сайтов, которые я разместил на моем VPS на Nginx , а поскольку Varnish уже установлен на 80, у меня не может быть Nginx на том же порту.
Я не хочу полностью избавляться от Apache, потому что он мне все еще нужен для доступа к панели управления моего vps, Sentora чтобы быть точным, где находится Apache на 8080. В заданном вопросе Вот, OP хотел иметь два разных домена на разных IP-адресах только на Apache, поэтому это не очень помогает.
Кроме того, я где-то читал об использовании server.port
директиву в моем vcl, но я не уверен, как это сделать. Вот что является частью моей default.vcl
выглядит как:
backend default {
.host = "127.0.0.1";
.port = "8080";
}
P.S: Я еще не установил Nginx.
Здесь вы хотите настроить дополнительный бэкэнд в 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;
}
}
Видеть Расширенная конфигурация Backend для получения дополнительных примеров. Также много примеров в Язык конфигурации Varnish документация.