Навіщо ставити Nginx перед Apache
За замовчуванням ISPmanager 6 уміє працювати з Nginx як самостійним веб-сервером або з класичною зв'язкою Nginx + Apache. У зв'язці Nginx приймає всі запити на порти 80 і 443, віддає статику напряму і передає динамічні запити на Apache через локальний порт. Це знижує навантаження на процесор при високому трафіку та прискорює віддачу картинок, CSS і JS.
Зв'язка корисна для сайтів на застарілому коді, який зав'язаний на директиви Apache на кшталт .htaccess зі складною логікою mod_rewrite. Якщо сайт написаний під чистий Nginx, окремий Apache не потрібен — подробиці про створення сайту дивіться в інструкції зі створення сайту в ISPmanager 6.
Чим зв'язка відрізняється від чистого Nginx
Різниця проявляється в обробці запитів і в наборі підтримуваних директив.
| Критерій | Тільки Nginx | Nginx + Apache |
|---|---|---|
| Швидкість статики | максимальна | висока |
| Підтримка .htaccess | ні | так |
| Витрата пам'яті | низька | середня |
| Сумісність зі старим PHP-кодом | обмежена | повна |
Для нових проектів на сучасних фреймворках частіше вистачає одного Nginx. Для успадкованих сайтів на старих CMS зв'язка знімає ризик поломки після перенесення.
Як увімкнути зв'язку в ISPmanager 6
Веб-сервер призначається під час створення сайту або змінюється в його налаштуваннях.
- Відкрийте розділ «Домени» і оберіть потрібний сайт.
- У налаштуваннях сайту перемкніть веб-сервер на варіант «Nginx + Apache».
- Збережіть зміни і зачекайте на застосування конфігурації.
Панель сама пропише проксування в конфіг Nginx і підніме окремий інстанс Apache на внутрішньому порту без зовнішнього доступу.
Як перевірити конфігурацію після перемикання
Після зміни веб-сервера варто переконатися, що обидва процеси запущені і слухають потрібні порти:
systemctl status nginx apache2
ss -tlnp | grep -E '80|443|8080'
Якщо Apache не відповідає, перевірте синтаксис його конфігурації окремо від Nginx:
apache2ctl configtest
nginx -t
Обидві команди мають повернути «Syntax OK» без помилок, інакше панель відкотить останню зміну сайту.
Як налаштувати проксування для важких запитів
Для сайтів із завантаженням великих файлів або довгими PHP-скриптами таймаути за замовчуванням іноді замалі. У налаштуваннях сайту в ISPmanager 6 можна збільшити таймаут проксі та ліміт тіла запиту, щоб Nginx не обривав з'єднання раніше, ніж відповість Apache.
Якщо після збільшення лімітів запити все ще обриваються, перевірте логи обох серверів — інструкція з їх читання є у статті логи і діагностика помилок в ISPmanager 6.
Коли зв'язка зайва
Не кожному сайту потрібна ця конфігурація.
- Статичний сайт або SPA без бекенду — Apache там взагалі не задіяний.
- Сучасний PHP-фреймворк із чистими правилами маршрутизації в конфігу, а не в .htaccess.
- Сервер з обмеженою пам'яттю, де кожен зайвий процес Apache помітний.
У цих випадках один Nginx із PHP-FPM працює швидше і простіше в обслуговуванні.
Підсумок: що обрати для свого сайту
Зв'язка Nginx + Apache — не типовий варіант, а інструмент під конкретну задачу. Беріть її для сайтів зі складним .htaccess і легасі-кодом, залишайте чистий Nginx для нових проектів. Після перемикання веб-сервера завжди перевіряйте обидва конфіги командами nginx -t та apache2ctl configtest, а за сумнівів звіряйтеся з логами сайту.