Skip to content

SpkArtZen/web_programming_6_semester

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Лабораторна робота №1. Налаштування вебсерверів

Мета: Опанувати принципи роботи та отримати навики налаштування вебсерверів.

Теоритичні відомості

Веб-сервер - це програмне забезпечення або апаратне забезпечення, яке обробляє запити від клієнтів (зазвичай веб-браузерів) і надає їм веб-сторінки або інші ресурси через протоколи зв'язку в Інтернеті, такі як HTTP (Hypertext Transfer Protocol) або HTTPS (HTTP Secure). Веб-сервер служить посередником між користувачами Інтернету та веб-сайтами, забезпечуючи доставку ресурсів.

До переліку популярних вебсерверів входять:

  • Apache
  • Nginx
  • Microsoft Internet Information Services (IIS)

HTTP - це протокол передачі даних, який використовується для передачі документів у Всесвітній павутині. Він є основою для передачі веб-сторінок (HTML) і дозволяє клієнтам взаємодіяти з веб-серверами. HTTP є протоколом без стану, що означає, що він не зберігає жодної інформації про попередні запити клієнта.

webserver.jpg

Веб-сайт - це набір взаємопов'язаних веб-сторінок, які зазвичай містять текст, зображення, відео та інші типи файлів. Веб-сайти можуть бути статичними або динамічними. Статичні веб-сайти зазвичай складаються з HTML-файлів, які зберігаються на сервері веб-сайтів. Динамічні веб-сайти генерують вміст на льоту з використанням серверних мов програмування, таких як PHP, Ruby, Python або Node.js.

Nginx - це безкоштовний вебсервер, який також може бути використаний як зворотний проксі-сервер, балансувальник навантаження та інше. Nginx був створений Ігорем Сирічевим та вперше був випущений в 2004 році. Він використовує модель подій та асинхронний підхід до обробки запитів, що дозволяє йому обробляти тисячі одночасних підключень на одному сервері.

Зворотний проксі-сервер - це сервер, який приймає запити від клієнтів, направляє їх до одного або декількох серверів, а потім повертає відповіді від цих серверів клієнтам. Зворотний проксі-сервер може використовуватися для збалансування навантаження, захисту серверів від атак, збереження кешу, зниження часу відповіді та інших цілей.

Типова архітектура зі зворотнім проксі-сервером має вигляд зображенний на рис. 1.

arhitecture.webp

Зручним інструментом для локального розгортання подібної архітектури є Docker та docker-compose.

Docker - це платформа для розробки, доставки та експлуатації програмного забезпечення в контейнерах. Контейнери дозволяють розробникам упаковувати програмне забезпечення з усіма частинами, які воно потребує, такими як бібліотеки та інші залежності, і відправляти все це як один пакет. Це спрощує розгортання та запуск програмного забезпечення, оскільки ви можете бути впевнені, що все, що потрібно для програми, буде налаштовано правильно.

Docker-compose - це інструмент для визначення та запуску багатоконтейнерних Docker додатків.

Завдання

  1. Проаналізувати та вивчити основні поняття, які використовуються в даній лабораторній роботі.
  2. Запустити проект та протестувати його роботу (http://localhost:8000,http://localhost:8000/node/, http://localhost:8000/php/).
  3. Модифікувати проэкт, виконавши наступні кроки:
    • обрати варіант завдання відповідно до номеру в журнвлі академічної групи;
    • у директроріях (має бути 3), що відповаідають платвормам виконати інсталюяцію фреймфорків вдповідно варіанту використовуючи офіційну документацію;
    • модифкувати файл docker-compose.yml та додати відсутній сервіс та надавши можлитвість доступу до кожгного з сервісів через відкритий порт з унікалтним номером;
    • за аналогією модіфікувати налаштування у файлі nginx/default.conf.
  4. Протестувати працесдатніть кожного сервіцу окремо.
  5. Протестувати працездатність всієї системи використовуючи едину точку входу.
  6. Завантажити проект до власного репозиторію з назвою за шаблоном <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

Контрольні питання

  1. Що таке веб-сервер? Назвіть декілька популярних веб-серверів.
  2. Що таке протокол HTTP і як він використовується в інтернеті?
  3. Які різниці між статичними та динамічними веб-сайтами?
  4. Що таке Nginx та в яких випадках його використовують?
  5. Як працює зворотний проксі-сервер?
  6. Які переваги використання Docker та docker-compose для розгортання додатків?

Як користуватись цим репозиторієм

Передумови

Для роботи з цим репозиторієм вам знадобиться встановлені на вашому комп'ютері наступні програми:

  • Docker and Docker-compose
  • Git
  • Node.js

Як запустити цей проект

  1. Клонуйте цей репозиторій на свій комп'ютер
  2. Перейдіть у директорію frontend та виконайте команду
  npm install
  1. Поверніться у корневу директорію та виконайте команду
  docker-compose up -d
  1. Зайдіть у контейнер з php та виконайте команду
  docker exec -it <php container id or name> /bin/bash
  cd /app
  composer install
  1. Перейдіть у директорію node-app та виконайте команду
  npm install
  1. Відкрийте ваш браузер та перейдіть за посиланням http://localhost:8000

  2. Зупинити проект можна виконавши команду

  docker-compose down

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors