Skip to content

Latest commit

 

History

History
106 lines (66 loc) · 8.59 KB

2.md

File metadata and controls

106 lines (66 loc) · 8.59 KB

Домашнее задание к занятию 2 «Кластеризация и балансировка нагрузки» - Яремко С.

Цель задания

В результате выполнения этого задания вы научитесь:

  1. Настраивать балансировку с помощью HAProxy
  2. Настраивать связку HAProxy + Nginx

Чеклист готовности к домашнему заданию

  1. Установлена операционная система Ubuntu на виртуальную машину и имеется доступ к терминалу
  2. Просмотрены конфигурационные файлы, рассматриваемые на лекции, которые находятся по ссылке

Инструкция по выполнению домашнего задания

  1. Сделайте fork репозитория c шаблоном решения к себе в Github и переименуйте его по названию или номеру занятия, например, https://github.com/имя-вашего-репозитория/gitlab-hw или https://github.com/имя-вашего-репозитория/8-03-hw).
  2. Выполните клонирование этого репозитория к себе на ПК с помощью команды git clone.
  3. Выполните домашнее задание и заполните у себя локально этот файл README.md:
    • впишите вверху название занятия и ваши фамилию и имя;
    • в каждом задании добавьте решение в требуемом виде: текст/код/скриншоты/ссылка;
    • для корректного добавления скриншотов воспользуйтесь инструкцией «Как вставить скриншот в шаблон с решением»;
    • при оформлении используйте возможности языка разметки md. Коротко об этом можно посмотреть в инструкции по MarkDown.
  4. После завершения работы над домашним заданием сделайте коммит (git commit -m "comment") и отправьте его на Github (git push origin).
  5. Для проверки домашнего задания преподавателем в личном кабинете прикрепите и отправьте ссылку на решение в виде md-файла в вашем Github.
  6. Любые вопросы задавайте в чате учебной группы и/или в разделе «Вопросы по заданию» в личном кабинете.

Задание 1

  • Запустите два simple python сервера на своей виртуальной машине на разных портах
  • Установите и настройте HAProxy, воспользуйтесь материалами к лекции по ссылке
  • Настройте балансировку Round-robin на 4 уровне.
  • На проверку направьте конфигурационный файл haproxy, скриншоты, где видно перенаправление запросов на разные серверы при обращении к HAProxy.

Ответ на Задание 1

Файл haproxy.cfg

haproxy.cfg

Запросы:

запросы

Задание 2

  • Запустите три simple python сервера на своей виртуальной машине на разных портах
  • Настройте балансировку Weighted Round Robin на 7 уровне, чтобы первый сервер имел вес 2, второй - 3, а третий - 4
  • HAproxy должен балансировать только тот http-трафик, который адресован домену example.local
  • На проверку направьте конфигурационный файл haproxy, скриншоты, где видно перенаправление запросов на разные серверы при обращении к HAProxy c использованием домена example.local и без него.

Ответ Задание 2

Файл haproxy.cfg

haproxy.cfg

Запросы:

запросы


Задания со звёздочкой*

Эти задания дополнительные. Их можно не выполнять. На зачёт это не повлияет. Вы можете их выполнить, если хотите глубже разобраться в материале.


Задание 3*

  • Настройте связку HAProxy + Nginx как было показано на лекции.
  • Настройте Nginx так, чтобы файлы .jpg выдавались самим Nginx (предварительно разместите несколько тестовых картинок в директории /var/www/), а остальные запросы переадресовывались на HAProxy, который в свою очередь переадресовывал их на два Simple Python server.
  • На проверку направьте конфигурационные файлы nginx, HAProxy, скриншоты с запросами jpg картинок и других файлов на Simple Python Server, демонстрирующие корректную настройку.

Задание 4*

  • Запустите 4 simple python сервера на разных портах.
  • Первые два сервера будут выдавать страницу index.html вашего сайта example1.local (в файле index.html напишите example1.local)
  • Вторые два сервера будут выдавать страницу index.html вашего сайта example2.local (в файле index.html напишите example2.local)
  • Настройте два бэкенда HAProxy
  • Настройте фронтенд HAProxy так, чтобы в зависимости от запрашиваемого сайта example1.local или example2.local запросы перенаправлялись на разные бэкенды HAProxy
  • На проверку направьте конфигурационный файл HAProxy, скриншоты, демонстрирующие запросы к разным фронтендам и ответам от разных бэкендов.

Правила приема работы

  1. Необходимо следовать инструкции по выполнению домашнего задания, используя для оформления репозиторий Github
  2. В ответе необходимо прикладывать требуемые материалы - скриншоты, конфигурационные файлы, скрипты. Необходимые материалы для получения зачета указаны в каждом задании.

Критерии оценки

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