Задача: оптимизировать работу сервера для максимальной скорости загрузки сайта.
Что есть сейчас: сервер на Digital Ocean. CentOS 7.6 x64, установлена панель управления Vesta.
Объём трафика 10 000 15 000 посетителей в сутки, со всего мира. Ожидается 100 000 150 000 посетителей в сутки.
Нужно настроить сервер оптимальным образом на всех уровнях и по тем параметрам, которые влияют на скорость загрузки страниц. Я собрал способы ускорения из интернета, нужно оценить их на целесообразность и эффективность и правильно внедрить + внести свои доработки для достижения цели, если требуется. Если какой то из пунктом бесполезен, дать обоснование.
Способы:
1. Настроить сжатие: gzip, brotli, deflate. Настроить приоритеты использования сжатия в зависимости от поддержки браузером и эффективности.
2. Настроить кэширование браузером клиента.
3. Настроить серверное кэширование.
4. Удалить лишние модули nginx: http_autoindex_module, http_ssi_module
5. Настроить client_body_timeout, client_header_timeout, keepalive_timeout, send_timeout. Сделать оптимизацию TCP, TLS, HTTP/2
yadi.sk/i/7YozOkOdhkAEZg yadi.sk/i/3ku1ZhrJgiZs9Q (увеличение начального окна перегрузки; уменьшение начального времени ожидания повторной передачи; уменьшение минимального и максимального времени ожидания повторной передачи)
6. Установить модуль mod-pagespeed. Прочитал, что этот модуль урезает куки, нужно отключить эту функцию, если она включена по-умолчанию.
7. Настроить оптимизацию БД (автоматическую чистку ненужных данных)
8. Включить акселератор на PHP (Цитата: Разработчики сайтов на PHP используют акселераторы кода для его оптимизации это расширение, которое кэширует байт-код и увеличивает производительность интерпретатора. При загрузке страницы сервер часто обрабатывает одни и те же участки кода, а акселератор будет предварительно компилировать PHP, что уменьшит время получения первого байта. В версиях PHP 5.5 и выше он идет в комплекте, в файле "php.ini" нужно найти "opcache.enable" и включить акселератор.)
9. Отключить ETag.
10. Настроить использование Flush.
11. Настроить webp-detect на nginx
Информацию брал отсюда:
livepage.pro/knowledge-ba... pr-cy.ru/news/p/7417-kak-... www.dmosk.ru/miniinstrukt... developers.google.com/spe... developer.yahoo.com/perfo... developer.yahoo.com/perfo... docs.microsoft.com/ru-ru/... pr-cy.ru/news/p/7417-kak-... github.com/igrigorik/webp... Также есть ряд вопросов, по которым нужна консультация:
1. Есть ли смысл выбирать лучший по характеристиках сервер при ожидаемом масштабировании? Доступ к Digital Ocean предоставлю, там есть статистика по текущей нагрузке.
2. Где лучше брать сервер, чтобы был доступен во всей Азии: Малайзия, Филиппины, Индонезия, Тайланд, Мьянма, Камбоджа, Вьетнам, Лаос, Индия. Сингапур оптимальный вариант?
3. Возможно смоделировать ситуацию, при которой на сайт приходит 50-100к кликов в день равномерно в течение 1 суток? Чтобы оценить, как ведёт себя сервер при таких нагрузках
4. Можно настроить оповещение при проблемах со скоростью / доступностью сайта / нагруженностью сервера? Чтобы приходили пуш-уведомления в браузер или сообщения в Телеграм. Есть ли простое решение?
5. Оптимальна ли панель Vesta или лучше установить другую? Или это не играет никакой роли?
6. ОСЬ сейчас CentOS 7.6 x64. Есть ли смысл использовать другую для ускорения загрузки?
7. Вопрос по поводу совместного использования с Azure CDN от Akamai. В справке написано: "Когда конечная точка профиля запрашивает файл в формате gzip, он всегда запрашивается с сервера-источника, независимо от запроса клиента."
docs.microsoft.com/ru-ru/... Правильно ли я понял, что при использовании Akamai нет смысла использовать никакое другое сжатие, кроме gzip?
Необходимые доступы предоставлю.
После настройке сервера нужно написать пошаговую инструкцию. Можно не максимально подробную (подключиться через SSH или открыть файл на FTP смогу). Можно по основным шагам + где какие команды вводить. После ознакомления инструкции попробую ее повторить с нуля, нужно будет ответить на возникающие по ходу вопросы.