Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@ author: Srinivas Nishant Viswanadha
contributors: Steven Spencer, Antoine Le Morvan, Ganna Zhyrnova
---

# Розділ: Робота з шаблонами Jinja в Ansible

## Вступ

Ansible забезпечує потужний і простий спосіб керування конфігураціями за допомогою шаблонів Jinja через вбудований модуль `template`. Цей документ досліджує два важливі способи використання шаблонів Jinja в Ansible:
Expand Down
6 changes: 6 additions & 0 deletions docs/books/web_services/01-files-servers.uk.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,12 @@ tags:
- sftp
---

!!! info

```
Вміст цієї сторінки ще не написаний.
```

<!---

# Part 1. Files Servers
Expand Down
93 changes: 93 additions & 0 deletions docs/books/web_services/02-web-servers-intro.uk.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
---
author: Antoine Le Morvan
contributors: Steven Spencer, Ganna Zhyrnova
title: Частина 2. Вступ до веб-серверів
---

## Вступ

### Протокол HTTP

**HTTP** (**H**yper**T**ext **T**transfer **P**rotocol) є найпоширенішим протоколом в Інтернеті з 1990 року.

Цей протокол забезпечує передачу файлів (головним чином у форматі HTML, а також у CSS, JS, AVI тощо), локалізованих рядком символів під назвою **URL**, між браузером (клієнтом) і веб-сервером (званим `httpd ` на машинах UNIX).

HTTP — це протокол «запит-відповідь», що працює поверх **TCP** (**T**transmission **C**ontrol **P**rotocol).

1. Клієнт відкриває TCP-з'єднання з сервером і надсилає запит.
2. Сервер аналізує запит і відповідає відповідно до його конфігурації.

Протокол HTTP є "**STATELESS**": він не зберігає жодної інформації про стан клієнта від одного запиту до іншого. Динамічні мови, такі як Php, Python або Java, зберігають інформацію про сеанс клієнта в пам’яті (як на сайті електронної комерції).

Поточні протоколи HTTP – це версія 1.1, яка широко використовується, і версії 2 і 3, які набувають поширення.

Відповідь HTTP – це набір рядків, які сервер надсилає браузеру. Це включає:

- **Рядок стану**: вказує версію протоколу та статус обробки запиту за допомогою коду та пояснювального тексту. Рядок складається з трьох елементів, розділених пробілом:
- Використана версія протоколу
- Код стану
- Значення коду

- **Поля заголовка відповіді**: це необов’язкові рядки, які надають додаткову інформацію про відповідь та/або сервер. Кожен рядок складається з назви, яка визначає тип заголовка, за якою йде двокрапка (:) і значення заголовка.

- **Тіло відповіді**: містить запитуваний документ.

Ось приклад відповіді HTTP:

```bash
$ curl --head --location https://docs.rockylinux.org
HTTP/2 200
accept-ranges: bytes
access-control-allow-origin: *
age: 109725
cache-control: public, max-age=0, must-revalidate
content-disposition: inline
content-type: text/html; charset=utf-8
date: Fri, 21 Jun 2024 12:05:24 GMT
etag: "cba6b533f892339d3818dc59c3a5a69a"
server: Vercel
strict-transport-security: max-age=63072000
x-vercel-cache: HIT
x-vercel-id: cdg1::pdqbh-1718971524213-4892bf82d7b2
content-length: 154696
```

!!! NOTE "Примітка"

```
Вивчення того, як використовувати команду `curl`, буде дуже корисним для вирішення проблем ваших серверів у майбутньому.
```

Роль веб-сервера полягає в перекладі URL-адреси на локальний ресурс. Перехід до сторінки https://docs.rockylinux.org/ схожий на надсилання HTTP-запиту на цю машину. Важливу роль відіграє служба DNS.

### URL

**URL** (**U**uniform **R**resource **L**locator) — це рядок символів ASCII, який використовується для позначення ресурсів в Інтернеті. Його неофіційно називають веб-адресою.

URL-адреса складається з трьох частин:

```text
<protocol>://<host>:<port>/<path>
```

- **Назва протоколу**: це мова, яка використовується для спілкування через мережу, як-от HTTP, HTTPS, FTP тощо. Найпоширенішими протоколами є HTTP (протокол передачі гіпертексту) і його безпечна версія HTTPS, яка використовується для обміну веб-сторінками у форматі HTML.

- **Логін** і **пароль**: дозволяє вказати параметри доступу до захищеного сервера. Цей параметр не рекомендується, оскільки пароль відображається в URL-адресі (з міркувань безпеки).

- **Хост**: це ім’я комп’ютера, на якому розміщено запитуваний ресурс. Зауважте, що можливе використання IP-адреси сервера, що робить URL-адресу менш читабельною.

- **Номер порту**: це пов’язано зі службою, яка дозволяє серверу знати запитуваний тип ресурсу. Порт протоколу HTTP за замовчуванням — порт 80 і 443 із HTTPS. Отже, номер порту необов’язковий, якщо протокол HTTP або HTTPS.

- Шлях ресурсу: ця частина дозволяє серверу знати розташування ресурсу. Як правило, це розташування (каталог) і ім’я запитуваного файлу. Якщо в адресі нічого не вказано місце розташування, це вказує на першу сторінку хоста. В іншому випадку він вказує шлях до сторінки для відображення.

### Порти

Запит HTTP надійде на порт 80 (порт за замовчуванням для HTTP) сервера, що працює на хості. Однак адміністратор може вільно вибрати порт прослуховування сервера.

Протокол HTTP доступний у безпечній версії: протокол HTTP (порт 443). Реалізуйте цей зашифрований протокол за допомогою модуля `mod_ssl`.

Також можливе використання інших портів, таких як порт `8080` (сервери додатків Java EE).

## Apache та Nginx

Двома найпоширенішими веб-серверами для Linux є Apache і Nginx. Ми обговоримо це в наступних розділах.
Loading