Skip to content

Commit

Permalink
Final
Browse files Browse the repository at this point in the history
  • Loading branch information
nicrausaz committed May 28, 2021
1 parent 2aa8564 commit 8bafa89
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 21 deletions.
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
run_step.sh text eol=lf
13 changes: 8 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,8 @@ Pour construire notre image et démarrer le container:

- `./run_step.sh 1`

Pour information, la configuration par défaut (vHost) se trouve dans /etc/apache2/sites-enabled/000-default.conf

Notre site est ainsi accessible sur [http://localhost:9090/](http://localhost:9090/)

</br>
Expand Down Expand Up @@ -138,7 +140,7 @@ Cette API dispose de 4 routes:
Cette étape consiste à mettre en place un reverse proxy avec apache, en utilisant une configuration statique.

Nous avons créé un vHost faisant office de reverse proxy, il est chargé de rediriger une requête HTTP vers le bon serveur en fonction de l'URL de cette requête.
Ainsi, les serveurs internes n'ont pas besoin d'ouvrir des portes en externes.
Ainsi, les serveurs internes n'ont pas besoin d'ouvrir des ports en externes. Le reverse proxy est le seul point d'accès à nos deux services.

Dans cette étape la configuration est faite de manière statique, ce qui n'est pas optimal car on doit reconfigurer nos fichiers de configuration et reconstruire notre image si les adresses IP de nos containers ont changés.

Expand All @@ -161,11 +163,12 @@ Notre configuration est donc:
Pour que cette configuration fonctionne, il faut ajouter une entrée DNS dans le fichier HOST de la machine hôte.
Voici où est situé le fichier host sur les 3 OS les plus utilisés:
Windows 10 - `"C:\Windows\System32\drivers\etc\hosts"`
Linux - `"/etc/hosts"`
Mac OS X - `"/private/etc/hosts"`
Nous avons donc ajouté la ligne suivante au fichier HOST:
- Windows - `"C:\Windows\System32\drivers\etc\hosts"`
- Linux - `"/etc/hosts"`
- Mac OS X - `"/private/etc/hosts"`
Dans notre cas, nous avons donc ajouté la ligne suivante au fichier HOST Windows:
`localhost reverse.res.ch`
Expand Down
34 changes: 18 additions & 16 deletions run_step.sh
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,6 @@ if [ "$1" = "purge" ]; then
fi
exit;
fi
#eval `docker rm $(docker ps -a -q)`;
exit;
fi

# Flag to omit build
if [ "$2" = "--nobuild" ]; then
Expand Down Expand Up @@ -64,18 +61,23 @@ case "$1" in
step1;
if [ $OMIT_BUILD = false ]
then
eval "docker build -t res/reverseproxy ./step3"
eval "docker build -t res/reverseproxy ./step3";
fi
eval "docker run -d -p 8080:80 --name reverse_proxy res/reverseproxy"
eval "docker run -d -p 8080:80 --name reverse_proxy res/reverseproxy";
;;

4 )
# Step 4: AJAX requests
if [ $OMIT_BUILD = false ]
then
eval "docker build -t res/static-ajax ./step4"
eval "docker build -t res/node-express ./step2";
eval "docker build -t res/reverseproxy ./step3";
eval "docker build -t res/static-ajax ./step4";
fi
eval "docker run -d --name static_ajax -p 9090:80 res/static-ajax"

eval "docker run -d --name express_dynamic res/node-express";
eval "docker run -d --name static_ajax res/static-ajax";
eval "docker run -d -p 8080:80 --name reverse_proxy res/reverseproxy";
;;

5 )
Expand All @@ -85,12 +87,12 @@ case "$1" in
then
eval "docker build -t res/node-express ./step2";
eval "docker build -t res/static-ajax ./step4";
eval "docker build -t res/dynamic-proxy ./step5"
eval "docker build -t res/dynamic-proxy ./step5";
fi

id=$(eval "docker run -d res/static-ajax")
id=$(eval "docker run -d res/static-ajax");
staticIP=$(eval "docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $id")":80";
id=$(eval "docker run -d res/node-express")
id=$(eval "docker run -d res/node-express");
APIIP=$(eval "docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $id")":3000";

eval "docker run -p 8080:80 -d -e STATIC_APP=$staticIP -e DYNAMIC_APP=$APIIP res/dynamic-proxy";
Expand All @@ -105,15 +107,15 @@ case "$1" in
then
eval "docker build -t res/node-express ./step2";
eval "docker build -t res/static-ajax ./step4";
eval "docker build -t res/load-balancing ./loadBalancing"
eval "docker build -t res/load-balancing ./loadBalancing";
fi

staticNodes=''
APINodes=''

for i in {0..2}
do
id=$(eval "docker run -d res/static-ajax")
id=$(eval "docker run -d res/static-ajax");
staticNodes+=$(eval "docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $id")":80";
if [ $i != 2 ]; then
staticNodes+=",";
Expand All @@ -122,7 +124,7 @@ case "$1" in

for i in {0..2}
do
id=$(eval "docker run -d res/node-express")
id=$(eval "docker run -d res/node-express");
APINodes+=$(eval "docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $id")":3000";
if [ $i != 2 ]; then
APINodes+=",";
Expand All @@ -138,15 +140,15 @@ case "$1" in
then
eval "docker build -t res/node-express ./step2";
eval "docker build -t res/static-ajax ./step4";
eval "docker build -t res/round-sticky ./round-sticky"
eval "docker build -t res/round-sticky ./round-sticky";
fi

staticNodes=''
APINodes=''

for i in {0..2}
do
id=$(eval "docker run -d res/static-ajax")
id=$(eval "docker run -d res/static-ajax");
staticNodes+=$(eval "docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $id")":80";
if [ $i != 2 ]; then
staticNodes+=",";
Expand All @@ -155,7 +157,7 @@ case "$1" in

for i in {0..2}
do
id=$(eval "docker run -d res/node-express")
id=$(eval "docker run -d res/node-express");
APINodes+=$(eval "docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $id")":3000";
if [ $i != 2 ]; then
APINodes+=",";
Expand Down

0 comments on commit 8bafa89

Please sign in to comment.