Onde o Varnish costuma ir em uma pilha web do Rails?

3

Eu tenho um aplicativo Rails de produção implementado no Unicorn com o nginx na frente para a entrega de arquivos estáticos. Agora preciso de alguns recursos do verniz e estou imaginando como apresentá-lo.

Algumas pessoas colocam o verniz na frente, enquanto outras colocam o nginx na frente. Eu não ouvi falar de ninguém usando apenas Varnish e Unicorn, mas imagino que seja válido.

Aqueles com nginx na frente parecem estar fazendo isso para gzip e terminação SSL. SSL não é relevante para meu aplicativo, mas gzip é. O verniz está chegando em breve, eu acho, então eu poderia viver sem por um tempo, no interesse da simplicidade.

Existe algum outro prós / contras para uma das abordagens? Existe um layout de melhores práticas canônicas para isso?

    
por wormcontrol 22.04.2011 / 15:31

1 resposta

10

Heroku (por exemplo) coloca nginx na frente do verniz provavelmente pelas razões que você mencionou.

Então, nginx - > verniz - > servidores de aplicativos.

No meu trabalho, usamos o Varnish na frente de tudo (verniz - > nginx - > apache / wsgi) e funciona muito bem. O pensamento é que, se houver um acerto de cache, ele será servido do ponto mais alto da pilha. Há algumas peculiaridades embora. A VCL é muito específica para sua tarefa e, como tal, torna um pouco difícil fazer coisas como redirecionamentos (digamos, para detecção de dispositivos móveis) que o nginx poderia manipular facilmente. Em geral, é um pouco menos flexível, já que não é bem o que se pretendia fazer.

Geralmente, pelo que li (e com base na minha experiência no trabalho) é provavelmente melhor colocar o nginx na frente da pilha com o verniz entre ele e os servidores de aplicativos.

A única desvantagem dessa abordagem ao usar o Unicorn é que você não será capaz de usar o método unix socket com nginx e unicorn, pois você terá que pressionar o verniz no meio e o verniz não os suportará. Isso é provavelmente uma coisa secundária.

UPDATE: Por alguns motivos adicionais e mais concretos para escolher um sobre o outro, confira os comentários desta resposta . Depende se você precisa de compactação SSL, ESI e gzip.

    
por 23.04.2011 / 03:46