doc: add general architecture base document + layers base reference
All checks were successful
Cadoles/bouncer/pipeline/head This commit looks good
All checks were successful
Cadoles/bouncer/pipeline/head This commit looks good
This commit is contained in:
parent
2a8849493d
commit
8d21e9083c
3
.gitignore
vendored
3
.gitignore
vendored
@ -6,4 +6,5 @@
|
|||||||
/config.yml
|
/config.yml
|
||||||
/admin-key.json
|
/admin-key.json
|
||||||
/.bouncer-token
|
/.bouncer-token
|
||||||
/data
|
/data
|
||||||
|
/out
|
@ -5,6 +5,7 @@
|
|||||||
|
|
||||||
## Référence
|
## Référence
|
||||||
|
|
||||||
|
- [(FR) - Layers](./fr/references/layers/README.md)
|
||||||
- [Fichier de configuration](../misc/packaging/common/config.yml)
|
- [Fichier de configuration](../misc/packaging/common/config.yml)
|
||||||
|
|
||||||
## Tutoriels
|
## Tutoriels
|
||||||
|
@ -1,3 +1,30 @@
|
|||||||
## Architecture générale
|
# Architecture générale
|
||||||
|
|
||||||
> TODO
|
## Modèles de déploiement
|
||||||
|
|
||||||
|
### Déploiement mono-noeud
|
||||||
|
|
||||||
|
![](../resources/deployment_fr.png)
|
||||||
|
## Terminologie
|
||||||
|
|
||||||
|
Voici une liste des termes utilisés dans le lexique Bouncer.
|
||||||
|
### Proxy
|
||||||
|
|
||||||
|
Un "proxy" est une entité logique définissant le relation suivante:
|
||||||
|
|
||||||
|
- Un ou plusieurs patrons de filtrage sous la forme `<host>:<port>`. Ceux ci identifient le ou les domaines associés à l'entité;
|
||||||
|
- Une URL cible qui servira de base pour la réécriture des requêtes.
|
||||||
|
|
||||||
|
Un "proxy" peut avoir zéro ou plusieurs "layers" associés.
|
||||||
|
|
||||||
|
Un "proxy" peut être activé ou désactivé.
|
||||||
|
|
||||||
|
Un "proxy" a un poids qui définit son niveau de priorité dans la pile de traitement (plus son poids est élevé plus il est prioritaire).
|
||||||
|
|
||||||
|
### Layer
|
||||||
|
|
||||||
|
Un "layer" (calque) est une entité logique définissant un traitement à appliquer aux requêtes et/ou aux réponses transitant par un proxy.
|
||||||
|
|
||||||
|
Un "layer" peut être activé ou désactivé.
|
||||||
|
|
||||||
|
Un "layer" a un poids qui définit son niveau de priorité dans la pile de traitement (plus son poids est élevé plus il est prioritaire).
|
5
doc/fr/references/layers/README.md
Normal file
5
doc/fr/references/layers/README.md
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
# Layers
|
||||||
|
|
||||||
|
Vous trouverez ci-dessous la liste des entités "Layer" activables sur vos entité "Proxy":
|
||||||
|
|
||||||
|
- [Queue](./queue) - File d'attente dynamique
|
27
doc/fr/references/layers/queue.md
Normal file
27
doc/fr/references/layers/queue.md
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
# Layer "Queue"
|
||||||
|
|
||||||
|
## Description
|
||||||
|
|
||||||
|
Ce layer permet d'ajouter un mécanisme de file d'attente dynamique au proxy associé.
|
||||||
|
|
||||||
|
## Type
|
||||||
|
|
||||||
|
`queue`
|
||||||
|
|
||||||
|
## Options
|
||||||
|
|
||||||
|
### `capacity`
|
||||||
|
|
||||||
|
- **Type:** `number`
|
||||||
|
- **Valeur par défaut:** `1000`
|
||||||
|
- **Description:** Capacité maximum de la file d'attente.
|
||||||
|
|
||||||
|
### `keepAlive`
|
||||||
|
|
||||||
|
- **Type:** `string` (Voir [`time.ParseDuration()`](https://pkg.go.dev/time#ParseDuration) pour plus d'informations sur le format)
|
||||||
|
- **Valeur par défaut:** `1m`
|
||||||
|
- **Description:** Durée de vie d'une session dans la file d'attente sans activité avant expiration.
|
||||||
|
|
||||||
|
### Schéma
|
||||||
|
|
||||||
|
Voir le [schéma JSON](../../../../internal/queue/schema/layer-options.json).
|
37
doc/resources/deployment_fr.plantuml
Normal file
37
doc/resources/deployment_fr.plantuml
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
@startuml
|
||||||
|
skinparam linetype ortho
|
||||||
|
skinparam ranksep 150
|
||||||
|
skinparam nodesep 50
|
||||||
|
top to bottom direction
|
||||||
|
|
||||||
|
frame "Exemple de déploiement mono-noeud" as ExampleSimpleNode {
|
||||||
|
|
||||||
|
actor "Navigateur Web" as WebNavigator
|
||||||
|
|
||||||
|
node "Serveur Bouncer" as BouncerServer {
|
||||||
|
actor "CLI d'administration" as AdminCLI
|
||||||
|
|
||||||
|
database "Redis" as RedisDatabase
|
||||||
|
|
||||||
|
component "bouncer-proxy" as BouncerProxyService
|
||||||
|
component "bouncer-admin" as BouncerAdminService
|
||||||
|
|
||||||
|
folder "/etc/bouncer" as BouncerConfigFolder
|
||||||
|
}
|
||||||
|
|
||||||
|
node "Serveur distant" as RemoteServer {
|
||||||
|
component "Site Web" as RemoteWebsite
|
||||||
|
}
|
||||||
|
|
||||||
|
WebNavigator --down0)- BouncerProxyService: "TCP/80 (HTTP)"
|
||||||
|
AdminCLI -0)- BouncerAdminService: "TCP/8081 (HTTP)"
|
||||||
|
|
||||||
|
BouncerProxyService -down0)-- RemoteWebsite: "TCP/80 (HTTP)\nTCP/443 (HTTPS)"
|
||||||
|
|
||||||
|
BouncerAdminService .down.> RedisDatabase: reads/writes
|
||||||
|
BouncerProxyService .down.> RedisDatabase: reads
|
||||||
|
|
||||||
|
BouncerAdminService ..> BouncerConfigFolder: uses
|
||||||
|
BouncerProxyService ..> BouncerConfigFolder: uses
|
||||||
|
|
||||||
|
@enduml
|
BIN
doc/resources/deployment_fr.png
Normal file
BIN
doc/resources/deployment_fr.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 35 KiB |
@ -7,12 +7,6 @@
|
|||||||
"type": "number",
|
"type": "number",
|
||||||
"minimum": 0
|
"minimum": 0
|
||||||
},
|
},
|
||||||
"matchers": {
|
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
"type": "string"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"keepAlive": {
|
"keepAlive": {
|
||||||
"type": "string"
|
"type": "string"
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user