Назад | Перейти на главную страницу

Перенаправление определенного трафика на Amazon AWS

Мой сервер получил внезапное увеличение (чтения) веб-трафика, запросив много фрагментов изображений карты, и apache не может с этим справиться.

Apache даже не может обрабатывать перенаправления! Средняя нагрузка, которую я получаю на моей машине CentOS, превышает 200 ..

Есть ли какое-то программное обеспечение, которое может перенаправить НЕКОТОРЫЙ трафик, например, только трафик из определенного каталога (например, http://example.com/maptiles/abc.png) на другой адрес (например, http://s3.amazonaws.com/mytiles/abc.png)?

можно ли это сделать с помощью HAProxy?

Вы могли бы это сделать, но прежде чем впадать в такую ​​крайность, подумайте о повышении производительности существующей службы, включая (возможно) установку обратного прокси-сервера кеширования, такого как Varnish. К тому времени, когда вы дойдете до точки, когда ваш единственный вариант - проксировать некоторый трафик на S3, вы, вероятно, все равно окажетесь мертвым в воде.

Вместо этого вы, возможно, захотите поместить некоторый контент в отдельный субдомен (Такие как maptiles.example.com), указав это на S3 и изменив ссылки на эти ресурсы в коде вашего сайта, чтобы они ссылались на этот субдомен. Это значительно снизит нагрузку на вашу машину.

Я бы сказал, что вам следует установить - лучше, если вы можете сделать это на выделенном экземпляре, но также будут работать на том же самом - экземпляре NGINX (простой веб-сервер событий / красивое решение для балансировки нагрузки) перед вашим веб-сервером apache.

Вы можете добавить кеш Varnish (в NGINX, если у вас достаточно оперативной памяти) для внутреннего управления этим статическим запросом, без участия вашей настройки apache. Это очень простая установка, которая позволит вам расти по горизонтали (добавление дополнительных серверов с Apache и перенаправление на них из NGINX).

Вы также должны понимать, где находится ваше узкое место. Загрузка 200+ может быть связана с высокой загрузкой ЦП (возможно, у вас работает MySQL локально, и вам не хватает индексов?) Или с дисковым вводом-выводом (посмотрите на iowait% из команды iostat GNU / Linux), что может быть связано с этими статическими файлы запросы.

Понимание узких мест должно быть первым шагом, а затем избавиться от всего, что вы можете.

Если вы считаете, что ваш сервер достиг своего предела, вы можете использовать haproxy в качестве балансировщика нагрузки и направлять на него весь трафик. Затем он перенаправит запросы на настроенные серверные ВМ. Некоторые из замечательных функций haproxy включают:

  1. Проверка работоспособности внутренних серверов.
  2. Для перенаправления трафика могут быть созданы очень гибкие списки ACL.
  3. Стабильно и может обрабатывать множество одновременных подключений.