Во-первых, насколько я понимаю, Varnish Cache - это всего лишь ускоритель HTTP и, следовательно, не поддерживает соединения на стороне клиента или сервера (backend) по HTTPS, несмотря на существование этот технический документ. Если это не так, и Varnish действительно поддерживает HTTPS-запросы на стороне клиента, тогда мой вопрос будет таким: как мне это настроить?
Итак, моя установка в настоящее время представляет собой просто стек LEMP на одном VPS, обслуживающем веб-страницы через HTTPS; HTTP-запросы 301 перенаправляются на HTTPS, и используется HSTS. Любые уместные комментарии по поводу масштабируемости также будут оценены, поскольку сайт в среднем проводит около 7000 сеансов в день. Учитывая то, что я читал, лучший способ использовать Varnish с этой настройкой - использовать Nginx в качестве терминатора SSL / TLS, перенаправлять запросы в Varnish, который, в свою очередь, перенаправляет некэшированные запросы обратно в Nginx для обработки. Назовем клиентский экземпляр SSL / TLS для Nginx «Nginx A», а экземпляр Nginx, который обрабатывает некэшированные запросы, «Nginx B» (несмотря на то, что они могут быть одним и тем же установленным экземпляром, только обрабатываемым другим виртуальным сервером. блоки):
+---------------+
+----------+ HTTPS | Nginx A | HTTP +---------+
| Internet | <-----> | (SSL/TLS | <----> | |
+----------+ | terminator) | | |
+---------------+ | Varnish |
| Nginx B | | |
| (for uncached | <----> | |
| requests) | HTTP +---------+
+---------------+
У меня следующий вопрос: Может ли эта установка лучше, чем просто мой текущий стек LEMP, без Varnish и с запросами кеширования Nginx? Varnish, конечно, намного лучший кеш, чем Nginx, но я думал, что в новой настройке Nginx A будет значительным узким местом, поскольку любые кешированные запросы, обслуживаемые Varnish, должны будут обрабатываться им и некэшироваться. запросы будут обрабатываться даже медленнее, чем сейчас, поскольку Nginx B должен протолкнуть их через Nginx A, прежде чем они будут отправлены через Интернет.