Назад | Перейти на главную страницу

Как мне установить Apache и Nginx за Varnish?

У меня есть установка, в которой 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 документация.