¿Cómo puedo tener Apache y Nginx detrás de Varnish?

¿Cómo puedo tener Apache y Nginx detrás de Varnish?

Tengo una configuración en la que Varnish escucha en el puerto 80 detrás de Apache en el puerto 8080 mientras pretendo tener Nginx en 8081. El panel de control de mi vps solo admite Apache, pero quiero probar uno de los sitios que he alojado en mi VPS en Nginx. , y como Varnish ya está en 80, no puedo tener Nginx en el mismo puerto.

No quiero deshacerme de Apache por completo porque todavía lo necesito para acceder al panel de control de mi vps.Sentorapara ser precisos, dónde se encuentra Apache en 8080. En la pregunta formuladaaquí, el OP quería tener dos dominios diferentes en diferentes IP solo en Apache, por lo que realmente no ayuda.

Además, leí en alguna parte sobre el uso de la server.portdirectiva en mi vcl, pero no estoy seguro de cómo hacerlo. Así es como default.vclse ve una parte de mi:

backend default {
    .host = "127.0.0.1";
    .port = "8080";
}

PD: todavía no he instalado Nginx.

Respuesta1

Aquí desea configurar un backend adicional en Varnish y enrutarle algunas solicitudes.

Primero agregue un nuevo backend para Nginx:

backend nginx {
    .host = "127.0.0.1";
    .port = "8081";
}

Luego puede enrutarle algunas solicitudes. Esto normalmente se hace en la vcl_recvsubrutina. Por ejemplo, si se accede a Sentora a través del dominio 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;
    }
}

VerConfiguración avanzada del backendpara más ejemplos. También hay muchos ejemplos en elIdioma de configuración de barnizdocumentación.

información relacionada