Лабораторная работа №17. Web-сервера, обратный прокси-сервер и балансировщик нагрузки NGINX (продолжение)
- Установить NGINX на компьютер, флеш-накопитель или виртуальную облачную машину. Рекомендуется использование ОС Linux (например Ubuntu), но возможна и установка ограниченной версии под ОС Windows. В отчете привести процесс установки (действия).
- Настроить сервер NGINX для передачи данных по протоколу HTTP/2.0. Отобразить в браузере передачу данных по HTTP/2.0. Необходимо создать ключ с помощью openssl. Выполнить подключение с самоподписанным сертификатом. При тестировании необходимо передавать web-страницу, содержащую HTML, CSS и JS файлы.
- Получить бесплатное DNS имя. Получить сертификат от Let's Encrypt. Установить сертификаты с помощью certbot. В отчете описать процесс сертификации и с помощью Wireshark привести, полученные клиентом, сертификаты.
- Настроить NGINX для проксирования ngnix.org. Настроить NGINX как обратный прокси-сервер для простейшего сервера на Node.js или PHP. Использовать заголовки add_header и proxy_set_header. В отчете привести пример и файл конфигурации.
- Настроить NGINX как балансировщик нагрузки для 3-х серверов, запущенных на различных портах с помощью upstream. Запустить 3 простых сервера Node.js или PHP. Показать работу балансировщика по методу RoundRobin. Показать работу балансировщика при отключении и подключении серверов.
- Настроить NGINX как балансировщик нагрузки с Sticky Session. Настроить NGINX как балансировщик нагрузки по методу равномерной загрузки.
- Создать простой REST API сервис для управления списком задач (To-Do list). Реализовать методы для создания, чтения, обновления и удаления задач.
- Добавить функционал аутентификации пользователей в REST API сервисе. Пользователь должен получить токен доступа для выполнения операций с задачами.
- Реализовать возможность фильтрации и сортировки задач в REST API сервисе. Добавить параметры запроса для выборки задач по определенным критериям.
- Создать метод для экспорта данных в различные форматы (например, JSON, CSV) в REST API сервисе. Пользователь может получить данные в нужном формате для дальнейшей обработки.
- Добавить возможность комментирования задач в REST API сервисе. Пользователь может оставлять комментарии к задачам и видеть комментарии других пользователей.
- Создать Docker образ веб-приложения. Образ должен содержать все необходимые зависимости и файлы приложения.
- Настроить Dockerfile для сборки образа веб-приложения, включая установку зависимостей, копирование файлов и запуск приложения.
- Запустить контейнер с созданным Docker образом веб-приложения и проверить его работоспособность через браузер.
- Развернуть базу данных (например, MySQL) в Docker контейнере и настроить веб-приложение на подключение к этой базе данных.
- Создать Docker-compose файл для запуска веб-приложения и базы данных в отдельных контейнерах, а также настройки их взаимодействия.
- Добавить возможность масштабирования веб-приложения путем запуска нескольких инстансов контейнера с помощью Docker-compose.
- Настроить автоматичесное обновление Docker образа веб-приложения при обновлении кода из репозитория (например, GitHub).
- Использовать Docker Swarm для развертывания кластера из нескольких узлов и размещения веб-приложения на этом кластере.
- Настроить мониторинг и логирование контейнеров с помощью инструментов, таких как Prometheus и Grafana.
- Запустить в Docker приложении сервер из задания №2, подключиться к нему 3-мя клиентами.