Primeiro, para esclarecer: o Nginx é um servidor da Web, com todos os recursos e complexidade que isso implica. Ele também possui capacidade de armazenamento em cache, mas esse não é seu principal objetivo de design.
O verniz não é um servidor web. Ele não pode desempenhar esse papel (não sem uma VCL realmente má). Sua função é armazenar em cache o conteúdo fornecido por outro servidor. Se necessário, pode alterar a solicitação ou a resposta.
Se o nginx pode lidar com seu tráfego, é o suficiente. Se o nginx não conseguir acompanhar, uma maneira de aumentar sua capacidade é colocar um cache na frente dele e fazer com que o cache lide com o maior número possível de solicitações.
Como exemplo, usamos o Apache para executar vários sites PHP relativamente complexos a partir de um cluster de servidores web. Quando começamos a ter problemas de capacidade, colocamos um par de servidores Varnish na frente do cluster Apache. Os hosts Varnish agora lidam com 85% de todas as solicitações recebidas sem incomodar o backend do Apache.