Веб-сервер - це програмне забезпечення або апаратне забезпечення, яке обробляє запити від клієнтів (зазвичай веб-браузерів) і надає їм веб-сторінки або інші ресурси через протоколи зв'язку в Інтернеті, такі як HTTP (Hypertext Transfer Protocol) або HTTPS (HTTP Secure). Веб-сервер служить посередником між користувачами Інтернету та веб-сайтами, забезпечуючи доставку ресурсів.
До переліку популярних вебсерверів входять:
- Apache
- Nginx
- Microsoft Internet Information Services (IIS)
HTTP - це протокол передачі даних, який використовується для передачі документів у Всесвітній павутині. Він є основою для передачі веб-сторінок (HTML) і дозволяє клієнтам взаємодіяти з веб-серверами. HTTP є протоколом без стану, що означає, що він не зберігає жодної інформації про попередні запити клієнта.
Веб-сайт - це набір взаємопов'язаних веб-сторінок, які зазвичай містять текст, зображення, відео та інші типи файлів. Веб-сайти можуть бути статичними або динамічними. Статичні веб-сайти зазвичай складаються з HTML-файлів, які зберігаються на сервері веб-сайтів. Динамічні веб-сайти генерують вміст на льоту з використанням серверних мов програмування, таких як PHP, Ruby, Python або Node.js.
Nginx - це безкоштовний вебсервер, який також може бути використаний як зворотний проксі-сервер, балансувальник навантаження та інше. Nginx був створений Ігорем Сирічевим та вперше був випущений в 2004 році. Він використовує модель подій та асинхронний підхід до обробки запитів, що дозволяє йому обробляти тисячі одночасних підключень на одному сервері.
Зворотний проксі-сервер - це сервер, який приймає запити від клієнтів, направляє їх до одного або декількох серверів, а потім повертає відповіді від цих серверів клієнтам. Зворотний проксі-сервер може використовуватися для збалансування навантаження, захисту серверів від атак, збереження кешу, зниження часу відповіді та інших цілей.
Типова архітектура зі зворотнім проксі-сервером має вигляд зображенний на рис. 1.
Зручним інструментом для локального розгортання подібної архітектури є Docker та docker-compose.
Docker - це платформа для розробки, доставки та експлуатації програмного забезпечення в контейнерах. Контейнери дозволяють розробникам упаковувати програмне забезпечення з усіма частинами, які воно потребує, такими як бібліотеки та інші залежності, і відправляти все це як один пакет. Це спрощує розгортання та запуск програмного забезпечення, оскільки ви можете бути впевнені, що все, що потрібно для програми, буде налаштовано правильно.
Docker-compose - це інструмент для визначення та запуску багатоконтейнерних Docker додатків.
- Проаналізувати та вивчити основні поняття, які використовуються в даній лабораторній роботі.
- Запустити проект та протестувати його роботу (http://localhost:8000,http://localhost:8000/node/, http://localhost:8000/php/).
- Модифікувати проэкт, виконавши наступні кроки:
- обрати варіант завдання відповідно до номеру в журнвлі академічної групи;
- у директроріях (має бути 3), що відповаідають платвормам виконати інсталюяцію фреймфорків вдповідно варіанту використовуючи офіційну документацію;
- модифкувати файл
docker-compose.ymlта додати відсутній сервіс та надавши можлитвість доступу до кожгного з сервісів через відкритий порт з унікалтним номером; - за аналогією модіфікувати налаштування у файлі
nginx/default.conf.
- Протестувати працесдатніть кожного сервіцу окремо.
- Протестувати працездатність всієї системи використовуючи едину точку входу.
- Завантажити проект до власного репозиторію з назвою за шаблоном <vendor>/backend-labs-1 на GitHub/Bitbucket та надати посилання на нього у якості звіту.
|18 | Symfony | Koa.js | FastAPI |
Посилань на Документацію
| Фреймворк | Посилання на документацію |
|---|---|
| Laravel | Документація Laravel |
| Symfony | Документація Symfony |
| Yii2 | Документація Yii2 |
| Express.js | Документація Express.js |
| Nest.js | Документація Nest.js |
| Koa.js | Документація Koa.js |
| Flask | Документація Flask |
| Django | Документація Django |
| FastAPI | Документація FastAPI |
- Що таке веб-сервер? Назвіть декілька популярних веб-серверів.
- Що таке протокол HTTP і як він використовується в інтернеті?
- Які різниці між статичними та динамічними веб-сайтами?
- Що таке Nginx та в яких випадках його використовують?
- Як працює зворотний проксі-сервер?
- Які переваги використання Docker та docker-compose для розгортання додатків?
Для роботи з цим репозиторієм вам знадобиться встановлені на вашому комп'ютері наступні програми:
- Docker and Docker-compose
- Git
- Node.js
- Клонуйте цей репозиторій на свій комп'ютер
- Перейдіть у директорію frontend та виконайте команду
npm install- Поверніться у корневу директорію та виконайте команду
docker-compose up -d- Зайдіть у контейнер з php та виконайте команду
docker exec -it <php container id or name> /bin/bash
cd /app
composer install- Перейдіть у директорію node-app та виконайте команду
npm install-
Відкрийте ваш браузер та перейдіть за посиланням http://localhost:8000
-
Зупинити проект можна виконавши команду
docker-compose down
