
Eu tenho uma configuração onde tenho o Varnish escutando na porta 80 atrás do Apache na porta 8080 enquanto pretendo ter o Nginx na 8081. O painel de controle do meu vps suporta apenas o Apache, mas quero testar um dos sites que hospedei no meu VPS no Nginx , e como o Varnish já está no 80, não posso ter o Nginx na mesma porta.
Não quero me livrar completamente do Apache porque ainda preciso dele para acessar o painel de controle do meu vps,Sentorapara ser mais preciso onde o Apache fica no 8080. Na pergunta feitaaqui, o OP queria ter dois domínios diferentes em IPs diferentes apenas no Apache, então isso realmente não ajuda.
Além disso, li em algum lugar sobre o uso da server.port
diretiva no meu vcl, mas não tenho certeza de como fazer isso. Aqui está a default.vcl
aparência de uma parte da minha:
backend default {
.host = "127.0.0.1";
.port = "8080";
}
PS: Ainda não instalei o Nginx.
Responder1
Aqui você deseja configurar um back-end adicional no Varnish e encaminhar algumas solicitações para ele.
Primeiro adicione um novo backend para Nginx:
backend nginx {
.host = "127.0.0.1";
.port = "8081";
}
Então você pode encaminhar algumas solicitações para ele. Isso normalmente é feito na vcl_recv
sub-rotina. Por exemplo, se o Sentora for acessado através do domínio 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;
}
}
VerConfiguração avançada de back-endpara mais exemplos. Também há muitos exemplos noLinguagem de configuração do Varnishdocumentação.