
У меня есть настройка, в которой Varnish прослушивает порт 80 за Apache на порту 8080, в то время как я собираюсь использовать Nginx на порту 8081. Панель управления моего VPS поддерживает только Apache, но я хочу протестировать один из сайтов, размещенных на моем VPS, на Nginx, и поскольку Varnish уже использует порт 80, я не могу использовать Nginx на том же порту.
Я не хочу полностью избавляться от Apache, так как он мне все еще нужен для доступа к панели управления моего VPS.Сентораесли быть точным, где Apache находится на 8080. В заданном вопросездесь, автор публикации хотел иметь два разных домена на разных IP-адресах только на Apache, так что это не особо помогает.
Также я где-то читал об использовании server.port
директивы в моем vcl, но я не уверен, как это сделать. Вот как 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;
}
}
ВидетьРасширенная конфигурация бэкэндадля большего количества примеров. Также есть много примеров вЯзык конфигурации лакадокументация.