Π [ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ Π³Π»Π°Π²Π΅ ΠΏΡΠΎ HTTPS](https.md) ΠΌΡ ΡΠ°Π·ΠΎΠ±ΡΠ°Π»ΠΈΡΡ, ΠΊΠ°ΠΊ HTTPS ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ API.
-Π’Π°ΠΊΠΆΠ΅ ΠΌΡ ΡΠ²ΠΈΠ΄Π΅Π»ΠΈ, ΡΡΠΎ HTTPS ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, **Π²Π½Π΅ΡΠ½ΠΈΠΉ** ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ β **ΠΏΡΠΎΠΊΡΠΈ-ΡΠ΅ΡΠ²Π΅Ρ TSL-ΡΠ΅ΡΠΌΠΈΠ½Π°ΡΠΈΠΈ**.
+Π’Π°ΠΊΠΆΠ΅ ΠΌΡ ΡΠ²ΠΈΠ΄Π΅Π»ΠΈ, ΡΡΠΎ HTTPS ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, **Π²Π½Π΅ΡΠ½ΠΈΠΉ** ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ β **ΠΏΡΠΎΠΊΡΠΈ-ΡΠ΅ΡΠ²Π΅Ρ TLS-ΡΠ΅ΡΠΌΠΈΠ½Π°ΡΠΈΠΈ**.
Π Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΠΎΡΠ²Π΅ΡΠ°ΡΡΠΈΠΉ Π·Π° **ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ HTTPSβΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ²** β ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΎΡ ΠΆΠ΅ ΡΠ°ΠΌΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΈΠ»ΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ.
### ΠΡΠΈΠΌΠ΅ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π΄Π»Ρ HTTPS { #example-tools-for-https }
-ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΠΏΡΠΎΠΊΡΠΈ-ΡΠ΅ΡΠ²Π΅Ρ TSL-ΡΠ΅ΡΠΌΠΈΠ½Π°ΡΠΈΠΈ:
+ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΠΏΡΠΎΠΊΡΠΈ-ΡΠ΅ΡΠ²Π΅Ρ TLS-ΡΠ΅ΡΠΌΠΈΠ½Π°ΡΠΈΠΈ:
* Traefik
* ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ β¨
* Π‘ Π²Π½Π΅ΡΠ½ΠΈΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, cert-manager) Π΄Π»Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ²
* ΠΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ Π²Π½ΡΡΡΠΈ ΠΎΠ±Π»Π°ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠ° ΠΊΠ°ΠΊ ΡΠ°ΡΡΡ Π΅Π³ΠΎ ΡΡΠ»ΡΠ³ (ΡΠΌ. Π½ΠΈΠΆΠ΅ π)
-ΠΡΡΠ³ΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ β ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ **ΠΎΠ±Π»Π°ΡΠ½ΡΠΉ ΡΠ΅ΡΠ²ΠΈΡ**, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΎΠ·ΡΠΌΡΡ Π½Π° ΡΠ΅Π±Ρ Π±ΠΎΠ»ΡΡΠ΅ Π·Π°Π΄Π°Ρ, Π²ΠΊΠ»ΡΡΠ°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΡ HTTPS. Π’Π°ΠΌ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΡΡΠΎΠΈΠΌΠΎΡΡΡ ΠΈ Ρ.ΠΏ., Π½ΠΎ Π² ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²Π°ΠΌ Π½Π΅ ΠΏΡΠΈΠ΄ΡΡΡΡ ΡΠ°ΠΌΠΈΠΌ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΠΏΡΠΎΠΊΡΠΈ-ΡΠ΅ΡΠ²Π΅Ρ TSL-ΡΠ΅ΡΠΌΠΈΠ½Π°ΡΠΈΠΈ.
+ΠΡΡΠ³ΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ β ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ **ΠΎΠ±Π»Π°ΡΠ½ΡΠΉ ΡΠ΅ΡΠ²ΠΈΡ**, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΎΠ·ΡΠΌΡΡ Π½Π° ΡΠ΅Π±Ρ Π±ΠΎΠ»ΡΡΠ΅ Π·Π°Π΄Π°Ρ, Π²ΠΊΠ»ΡΡΠ°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΡ HTTPS. Π’Π°ΠΌ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΡΡΠΎΠΈΠΌΠΎΡΡΡ ΠΈ Ρ.ΠΏ., Π½ΠΎ Π² ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²Π°ΠΌ Π½Π΅ ΠΏΡΠΈΠ΄ΡΡΡΡ ΡΠ°ΠΌΠΈΠΌ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΠΏΡΠΎΠΊΡΠΈ-ΡΠ΅ΡΠ²Π΅Ρ TLS-ΡΠ΅ΡΠΌΠΈΠ½Π°ΡΠΈΠΈ.
Π ΡΠ»Π΅Π΄ΡΡΡΠΈΡ
Π³Π»Π°Π²Π°Ρ
Ρ ΠΏΠΎΠΊΠ°ΠΆΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ.
βββ requirements.txt
```
-#### ΠΠ° ΠΏΡΠΎΠΊΡΠΈ-ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ TSL-ΡΠ΅ΡΠΌΠΈΠ½Π°ΡΠΈΠΈ { #behind-a-tls-termination-proxy }
+#### ΠΠ° ΠΏΡΠΎΠΊΡΠΈ-ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ TLS-ΡΠ΅ΡΠΌΠΈΠ½Π°ΡΠΈΠΈ { #behind-a-tls-termination-proxy }
-ΠΡΠ»ΠΈ Π²Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π·Π° ΠΏΡΠΎΠΊΡΠΈ-ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ TSL-ΡΠ΅ΡΠΌΠΈΠ½Π°ΡΠΈΠΈ (Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊΠΎΠΌ Π½Π°Π³ΡΡΠ·ΠΊΠΈ), ΡΠ°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ Nginx ΠΈΠ»ΠΈ Traefik, Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΠΎΠΏΡΠΈΡ `--proxy-headers`. ΠΡΠΎ ΡΠΎΠΎΠ±ΡΠΈΡ Uvicorn (ΡΠ΅ΡΠ΅Π· FastAPI CLI), ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ²Π΅ΡΡΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°ΠΌ, ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠΌ ΡΡΠΈΠΌ ΠΏΡΠΎΠΊΡΠΈ ΠΈ ΡΠΎΠΎΠ±ΡΠ°ΡΡΠΈΠΌ, ΡΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π·Π° HTTPS, ΠΈ Ρ.Π΄.
+ΠΡΠ»ΠΈ Π²Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π·Π° ΠΏΡΠΎΠΊΡΠΈ-ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ TLS-ΡΠ΅ΡΠΌΠΈΠ½Π°ΡΠΈΠΈ (Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊΠΎΠΌ Π½Π°Π³ΡΡΠ·ΠΊΠΈ), ΡΠ°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ Nginx ΠΈΠ»ΠΈ Traefik, Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΠΎΠΏΡΠΈΡ `--proxy-headers`. ΠΡΠΎ ΡΠΎΠΎΠ±ΡΠΈΡ Uvicorn (ΡΠ΅ΡΠ΅Π· FastAPI CLI), ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ²Π΅ΡΡΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°ΠΌ, ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠΌ ΡΡΠΈΠΌ ΠΏΡΠΎΠΊΡΠΈ ΠΈ ΡΠΎΠΎΠ±ΡΠ°ΡΡΠΈΠΌ, ΡΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π·Π° HTTPS, ΠΈ Ρ.Π΄.
```Dockerfile
CMD ["fastapi", "run", "app/main.py", "--proxy-headers", "--port", "80"]
### ΠΠ°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊ Π½Π°Π³ΡΡΠ·ΠΊΠΈ { #load-balancer }
-ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² ΠΎΠ±ΡΡΠ½ΠΎ Π΅ΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, **ΡΠ»ΡΡΠ°ΡΡΠΈΠΉ Π³Π»Π°Π²Π½ΡΠΉ ΠΏΠΎΡΡ**. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ β **ΠΏΡΠΎΠΊΡΠΈ-ΡΠ΅ΡΠ²Π΅Ρ TSL-ΡΠ΅ΡΠΌΠΈΠ½Π°ΡΠΈΠΈ** Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ **HTTPS** ΠΈΠ»ΠΈ ΠΏΠΎΡ
ΠΎΠΆΠΈΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ.
+ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² ΠΎΠ±ΡΡΠ½ΠΎ Π΅ΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, **ΡΠ»ΡΡΠ°ΡΡΠΈΠΉ Π³Π»Π°Π²Π½ΡΠΉ ΠΏΠΎΡΡ**. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ β **ΠΏΡΠΎΠΊΡΠΈ-ΡΠ΅ΡΠ²Π΅Ρ TLS-ΡΠ΅ΡΠΌΠΈΠ½Π°ΡΠΈΠΈ** Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ **HTTPS** ΠΈΠ»ΠΈ ΠΏΠΎΡ
ΠΎΠΆΠΈΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ **Π½Π°Π³ΡΡΠ·ΠΊΡ** Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΈ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π΅Ρ ΠΌΠ΅ΠΆΠ΄Ρ Π²ΠΎΡΠΊΠ΅ΡΠ°ΠΌΠΈ **ΡΠ±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎ**, Π΅Π³ΠΎ ΡΠ°ΡΡΠΎ Π½Π°Π·ΡΠ²Π°ΡΡ **Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊΠΎΠΌ Π½Π°Π³ΡΡΠ·ΠΊΠΈ**.
/// tip | ΠΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠ°
-Π’ΠΎΡ ΠΆΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ **ΠΏΡΠΎΠΊΡΠΈ-ΡΠ΅ΡΠ²Π΅Ρ TSL-ΡΠ΅ΡΠΌΠΈΠ½Π°ΡΠΈΠΈ**, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ HTTPS, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ ΡΠ°ΠΊΠΆΠ΅ Π±ΡΠ΄Π΅Ρ **Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊΠΎΠΌ Π½Π°Π³ΡΡΠ·ΠΊΠΈ**.
+Π’ΠΎΡ ΠΆΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ **ΠΏΡΠΎΠΊΡΠΈ-ΡΠ΅ΡΠ²Π΅Ρ TLS-ΡΠ΅ΡΠΌΠΈΠ½Π°ΡΠΈΠΈ**, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ HTTPS, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ ΡΠ°ΠΊΠΆΠ΅ Π±ΡΠ΄Π΅Ρ **Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊΠΎΠΌ Π½Π°Π³ΡΡΠ·ΠΊΠΈ**.
///
-ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°ΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈΠΌΠΈ, ΡΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ **ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ** (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, HTTP-Π·Π°ΠΏΡΠΎΡΠΎΠ²) ΠΎΡ **Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊΠ° Π½Π°Π³ΡΡΠ·ΠΊΠΈ** (ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ **ΠΏΡΠΎΠΊΡΠΈ-ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ TSL-ΡΠ΅ΡΠΌΠΈΠ½Π°ΡΠΈΠΈ**) ΠΊ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ(-Π°ΠΌ) Ρ Π²Π°ΡΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ.
+ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°ΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈΠΌΠΈ, ΡΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ **ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ** (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, HTTP-Π·Π°ΠΏΡΠΎΡΠΎΠ²) ΠΎΡ **Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊΠ° Π½Π°Π³ΡΡΠ·ΠΊΠΈ** (ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ **ΠΏΡΠΎΠΊΡΠΈ-ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ TLS-ΡΠ΅ΡΠΌΠΈΠ½Π°ΡΠΈΠΈ**) ΠΊ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ(-Π°ΠΌ) Ρ Π²Π°ΡΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ.
### ΠΠ΄ΠΈΠ½ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊ β Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ²-Π²ΠΎΡΠΊΠ΅ΡΠΎΠ² { #one-load-balancer-multiple-worker-containers }
* path operation: ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΏΡΡΠΈ (optionally clarify as `ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΏΡΡΠΈ`)
* path operation function: ΡΡΠ½ΠΊΡΠΈΡ-ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΏΡΡΠΈ (or `ΡΡΠ½ΠΊΡΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΡΠΈ`)
* proprietary: ΠΏΡΠΎΠΏΡΠΈΠ΅ΡΠ°ΡΠ½ΡΠΉ
-* benchmark: Π±Π΅Π½ΡΠΌΠ°ΡΠΊ (add (`ΡΠ΅ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ`) if clarification is needed or use just `ΡΠ΅ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ`)
+* benchmark: Π±Π΅Π½ΡΠΌΠ°ΡΠΊ (add `(ΡΠ΅ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ)` if clarification is needed or use just `ΡΠ΅ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ`)
* ASGI server: ASGI-ΡΠ΅ΡΠ²Π΅Ρ
* In a hurry? : ΠΠ΅Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ?
* response status code: ΡΡΠ°ΡΡΡ-ΠΊΠΎΠ΄ ΠΎΡΠ²Π΅ΡΠ°
* include: Π²ΠΊΠ»ΡΡΠ°ΡΡ (add `Π² ΡΠ΅Π±Ρ` if it's appropriate, or use `ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ` as an alternative)
* virtual environment: Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅
* framework: ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ
-* path paremeter: path-ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ
+* path parameter: path-ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ
* path (as in URL path): ΠΏΡΡΡ
* form (as in HTML form): ΡΠΎΡΠΌΠ°
* media type: ΡΠΈΠΏ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ (or `ΠΌΠ΅Π΄ΠΈΠ°-ΡΠΈΠΏ`)
* have the next best performance, after: Π±ΡΡΡ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΌΠ΅ΡΡΠ΅ ΠΏΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΠΎΡΠ»Π΅
* timing attack: ΡΠ°ΠΉΠΌΠΈΠ½Π³ΠΎΠ²Π°Ρ Π°ΡΠ°ΠΊΠ° (clarify `Π°ΡΠ°ΠΊΠ° ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ` if needed)
* OAuth2 scope: OAuth2 scope (clarify `ΠΎΠ±Π»Π°ΡΡΡ` if needed)
-* TLS Termination Proxy: ΠΏΡΠΎΠΊΡΠΈ-ΡΠ΅ΡΠ²Π΅Ρ TSL-ΡΠ΅ΡΠΌΠΈΠ½Π°ΡΠΈΠΈ
+* TLS Termination Proxy: ΠΏΡΠΎΠΊΡΠΈ-ΡΠ΅ΡΠ²Π΅Ρ TLS-ΡΠ΅ΡΠΌΠΈΠ½Π°ΡΠΈΠΈ
* utilize (resources): ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ
-* Ρontent: ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ (or `ΠΊΠΎΠ½ΡΠ΅Π½Ρ`)
+* content: ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ (or `ΠΊΠΎΠ½ΡΠ΅Π½Ρ`)
* raise exception: Π²ΡΠ·Π²Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ (also possible to use `ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅` or `Π²ΡΠ±ΡΠΎΡΠΈΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅`)
* password flow: password flow (clarify as `Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΏΠΎ ΠΏΠ°ΡΠΎΠ»Ρ` if needed)
* tutorial: ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ (or `ΡΡΠ΅Π±Π½ΠΈΠΊ`)
* submodule: ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡΠ»Ρ
* subpackage: ΠΏΠΎΠ΄ΠΏΠ°ΠΊΠ΅Ρ
* router: ΡΠΎΡΡΠ΅Ρ
-* building, deploying, accessing (when describing features of FastAPI Cloud): ΡΠΎΠ·Π΄Π°Π½ΠΈe ΠΎΠ±ΡΠ°Π·Π°, ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅ ΠΈ Π΄ΠΎΡΡΡΠΏ
+* building, deploying, accessing (when describing features of FastAPI Cloud): ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°Π·Π°, ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅ ΠΈ Π΄ΠΎΡΡΡΠΏ
* type checker tool: ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΈΠΏΠΎΠ²
Do not add whitespace in `Ρ.Π΄.`, `Ρ.ΠΏ.`.