Чи краще лакувати з nginx, ніж просто використовувати nginx? [зачинено]


22

Я бачу багато розмов про використання nginx з Varnish і не розумію, чому. Не достатньо nginx?

Nginx має SSI, має зворотний кеш проксі, легкий, має SSL, може працювати з cgi, fpm тощо.

У лаку є ті ж речі, але не ssl, ні підтримка cgi.


"Краще" справді суб'єктивно. Це залежить від ваших випадків використання ...
voretaq7

7
Іноді просте запитання робить роботу краще, ніж складна. Я дуже стурбований подібними діями від людей, які закрили це питання, вважаючи, що це не добре для "оригінального формату запитання". Я шукаю цю тему, і мені було дуже цікаво побачити результат цієї дискусії.
Роджер

лак має потужну конфігурацію vcl, очищення, кеш-зворотний проксі, ESI nginx може працювати з FCGI, зворотним кешуванням проксі, ssi, без очищення (можливо, є модуль). у вас є питання, які я можу допомогти
Богдан Космін

Відповіді:


14

Я знайшов лак на 5% швидше для невеликих статичних файлів, ніж nginx - лак перед apache або лак перед сервером веб-додатків принесуть великі прибутки; але перед nginx, користь досить незначна (особливо з урахуванням накладних витрат та додаткової складності)


Чи можете ви надати якісь результати тестів на підтвердження цього? Що робити, якщо я вже використовую nginx + opcache. Чи є тоді користь від використання лаку?
Серйозний

23

По-перше, для уточнення: Nginx - це веб-сервер з усіма функціями та складністю, що спричиняє за собою. Він також має можливість кешування, але це не його головна мета дизайну.

Лак - це не веб-сервер. Він не може заповнити цю роль (не без справді злого VCL). Його роль полягає в кешуванні вмісту, наданого іншим сервером. Якщо потрібно, це може змінити запит або відповідь.

Якщо nginx може управляти вашим трафіком, то цього достатньо. Якщо nginx не в змозі підтримувати, то один із способів збільшити її ємність - розмістити кеш перед ним і обробляти кеш якомога більше запитів.

Як приклад, ми використовуємо Apache для запуску ряду відносно складних веб-сайтів PHP з кластеру веб-серверів. Коли ми почали відчувати проблеми з ємністю, ми розмістили пару серверів Varnish перед кластером Apache. Тепер хости лаків обробляють 85% усіх вхідних запитів, не турбуючи сервер Apache.


Отже, Varnish кешує динамічний контент, створений PHP? Або просто інші речі?
Алікс Аксель

Лакуйте кеш-пам'ять, що ви скажете, щоб кешувати. Він може кешувати лише вихід PHP, лише статичні файли, і те, і інше. Це дуже потужний інструмент.
Insyte

Я питав про ваш конкретний приклад. Мене бентежить, як можна кешувати динамічний вміст, не псуючи динамічний додаток (PHP-сеанси для початківців). Кешування статичного вмісту мені здається трохи зайвим.
Алікс Аксель

3
Це залежить від динамічного змісту. Скажіть, наприклад, що сторінка - це повідомлення в блозі з коментарями. Генерувати нитку коментарів може бути дуже дорого, але цілком прийнятно кешувати її протягом 5 хвилин. З іншого боку, кешування динамічного вмісту, поверненого програмою веб-пошти, було б очевидно проблематичним. Ви навіть можете створити змішаний випадок: Кешуйте весь вихід програми електронної комерції, але скажіть лаку передзвонити до бекенда, щоб заповнити індикатор кошика для покупок.
Insyte
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.