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
1
.gitignore
vendored
1
.gitignore
vendored
@ -7,3 +7,4 @@
|
||||
/admin-key.json
|
||||
/.bouncer-token
|
||||
/data
|
||||
/out
|
@ -5,6 +5,7 @@
|
||||
|
||||
## Référence
|
||||
|
||||
- [(FR) - Layers](./fr/references/layers/README.md)
|
||||
- [Fichier de configuration](../misc/packaging/common/config.yml)
|
||||
|
||||
## 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",
|
||||
"minimum": 0
|
||||
},
|
||||
"matchers": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"keepAlive": {
|
||||
"type": "string"
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user