diff --git a/TP5 log.txt b/TP5 log.txt
index 9d197b1af301d731e1c2052949327a1226afd976..b8942684c7e36e77d3fe5ae9e5b5bf64bb3d6214 100644
--- a/TP5 log.txt	
+++ b/TP5 log.txt	
@@ -28,7 +28,7 @@ Utiliser le compilateur pour compiler le fichier puis après avoir crée le bina
 on supprime les fichiers du compilateur.
 
 
-Après quelques heures de recherche, j'ai abandonné l'utilisation de python pour réduire la tailel de l'image en essayant d'avoir une image qui ne contient que les fichiers nécessaires à l'exécution sans avoir de compilateur.
+Après quelques heures de recherche, j'ai abandonné l'utilisation de python pour réduire la taille de l'image en essayant d'avoir une image qui ne contient que les fichiers nécessaires à l'exécution sans avoir de compilateur.
 Le problème est que Python est configuré pour se compiler et s'exécuter avec la même commande => "python" ou "python3". 
 Dès lors les fichiers nécessaire pour pouvoir exécuter la commande "python" ou "python3" ne peuvent être enlevés.
 D'autre part, il m'est impossible d'exécuter un fichier python compilé (.pyc) avec un interpreteur "sh" ou "bash".
@@ -127,7 +127,7 @@ paquets pour faire du loadbalencing: nginx et caddy
 J'utilise nginx:
 https://docs.nginx.com/nginx/admin-guide/load-balancer/http-load-balancer/
 
-L'architecture sera la suivante:
+L'architecture sera la suivante (depreceted, voir "Modification d'architecture):
 j'ai 4 workers (serveurs noeuds) sur openstack. Ceux-ci seront dirigés par un reverse-proxy qui est mon PC Ubuntu 20 Virtuel.
 
 Pour installer le reverse proxy et donc le paquet nginx, j'ai suivi ce tuto:
@@ -163,3 +163,20 @@ Un nouveau fichier serveur_go_different_hostname_for_ip.yml est utilisé pour pr
 
 Commande pour exécuter le playbook ansible en prennant en compte des hostname différents pour chaque worker:
 #ansible-playbook -i hosts.yml serveur_go_different_hostname_for_ip.yml --extra-vars "@workers_hostname.json" --private-key ssh-private-key.txt
+
+
+
+Modification d'architecture:
+Sur les 4 workers, l'une d'entre elles sera un worker et aussi le reverse-proxy.
+(172.28.100.90)
+
+Dockeriser nginx:
+Après avoir créée l'image pour nginx, je l'a teste sur ma mach. virt. avec les commandes
+#docker build -t nginx_reverse_proxy_img .
+#docker run --rm -ti -p 9080:9090 nginx_reverse_proxy_img
+url: 127.0.0.1:9080
+
+Après, je met en place cette image et container via ansible sur la machine (172.28.100.90).
+
+Par soucis de configuration, j'ai abandonné les modifications dans nginx.conf pour avoir un fichier propre pour mon reverse_proxy: reverse_proxy.conf
+
diff --git a/TP5_06.11.20/ansible/nginx_loadbalencing/reverse_proxy_nginx/Dockerfile b/TP5_06.11.20/ansible/nginx_loadbalencing/reverse_proxy_nginx/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..92d9c59040f17b9900b4ce04dd05d8aa5a099fae
--- /dev/null
+++ b/TP5_06.11.20/ansible/nginx_loadbalencing/reverse_proxy_nginx/Dockerfile
@@ -0,0 +1,3 @@
+FROM nginx
+RUN rm /etc/nginx/conf.d/default.conf
+COPY reverse_proxy.conf /etc/nginx/conf.d/default.conf
\ No newline at end of file
diff --git a/TP5_06.11.20/ansible/nginx_loadbalencing/reverse_proxy_nginx/nginx.conf b/TP5_06.11.20/ansible/nginx_loadbalencing/reverse_proxy_nginx/nginx.conf
new file mode 100644
index 0000000000000000000000000000000000000000..9ee6e06cf74c4c9c3c1534e69322d1f5c005bb26
--- /dev/null
+++ b/TP5_06.11.20/ansible/nginx_loadbalencing/reverse_proxy_nginx/nginx.conf
@@ -0,0 +1,85 @@
+user www-data;
+worker_processes auto;
+pid /run/nginx.pid;
+include /etc/nginx/modules-enabled/*.conf;
+
+events {
+	worker_connections 768;
+	# multi_accept on;
+}
+
+http {
+
+	##
+	# Basic Settings
+	##
+
+	sendfile on;
+	tcp_nopush on;
+	tcp_nodelay on;
+	keepalive_timeout 65;
+	types_hash_max_size 2048;
+	# server_tokens off;
+
+	# server_names_hash_bucket_size 64;
+	# server_name_in_redirect off;
+
+	include /etc/nginx/mime.types;
+	default_type application/octet-stream;
+
+	##
+	# SSL Settings
+	##
+
+	ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE
+	ssl_prefer_server_ciphers on;
+
+	##
+	# Logging Settings
+	##
+
+	access_log /var/log/nginx/access.log;
+	error_log /var/log/nginx/error.log;
+
+	##
+	# Gzip Settings
+	##
+
+	gzip on;
+
+	# gzip_vary on;
+	# gzip_proxied any;
+	# gzip_comp_level 6;
+	# gzip_buffers 16 8k;
+	# gzip_http_version 1.1;
+	# gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
+
+	##
+	# Virtual Host Configs
+	##
+
+	include /etc/nginx/conf.d/*.conf;
+	include /etc/nginx/sites-enabled/*;
+}
+
+
+#mail {
+#	# See sample authentication script at:
+#	# http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
+# 
+#	# auth_http localhost/auth.php;
+#	# pop3_capabilities "TOP" "USER";
+#	# imap_capabilities "IMAP4rev1" "UIDPLUS";
+# 
+#	server {
+#		listen     localhost:110;
+#		protocol   pop3;
+#		proxy      on;
+#	}
+# 
+#	server {
+#		listen     localhost:143;
+#		protocol   imap;
+#		proxy      on;
+#	}
+#}
diff --git a/TP5_06.11.20/ansible/nginx_loadbalencing/reverse_proxy_nginx/reverse_proxy.conf b/TP5_06.11.20/ansible/nginx_loadbalencing/reverse_proxy_nginx/reverse_proxy.conf
new file mode 100644
index 0000000000000000000000000000000000000000..6246805e2d9baadcad6341ed63d267e5aec77624
--- /dev/null
+++ b/TP5_06.11.20/ansible/nginx_loadbalencing/reverse_proxy_nginx/reverse_proxy.conf
@@ -0,0 +1,13 @@
+#reverse_proxy
+	upstream group1{
+		server 172.28.100.90:8000;
+		server 172.28.100.51:8000;
+		server 172.28.100.111:8000;
+		server 172.28.100.72:8000;
+	}
+	server {
+		listen	9090;
+		location / {
+			proxy_pass http://group1;
+		}
+	}
\ No newline at end of file
diff --git a/TP5_06.11.20/ansible/nginx_loadbalencing/serveur_go_different_hostname_for_ip.yml b/TP5_06.11.20/ansible/nginx_loadbalencing/serveur_go_different_hostname_for_ip.yml
index 0508e0a9ad769ce86178519882120a97672a6755..c795bf2be91f71c62952c935741d1f0c64c48251 100644
--- a/TP5_06.11.20/ansible/nginx_loadbalencing/serveur_go_different_hostname_for_ip.yml
+++ b/TP5_06.11.20/ansible/nginx_loadbalencing/serveur_go_different_hostname_for_ip.yml
@@ -1,41 +1,77 @@
 ---
-- name: Install go_server
+- name: Install go_server and nginx reverse_rpoxy
   hosts: all
   become: true
 
   tasks:
-    - debug: var=hostvars[inventory_hostname]['ansible_default_ipv4']['address']
-    - name: copy go_server files
+    #copy directory part
+    - name: copy go_server files for every worker
       copy:
-        src: "/home/pierre/Bureau/DAC/dac-tp/TP5_06.11.20/ansible/Gofiles"
+        #src: "/home/pierre/Bureau/DAC/dac-tp/TP5_06.11.20/ansible/Gofiles"
+        src: "/home/pierre/Bureau/DAC/dac-tp/TP5_06.11.20/ansible/nginx_loadbalencing/worker_go_server_files"
         dest: "/root/"
       ignore_errors: yes
 
+    - name: copy reverse_proxy_nginx files for worker1
+      copy:
+        src: "/home/pierre/Bureau/DAC/dac-tp/TP5_06.11.20/ansible/nginx_loadbalencing/reverse_proxy_nginx"
+        dest: "/root/"
+      ignore_errors: yes
+      when: 
+        - ansible_default_ipv4.address == "172.28.100.90"
+
+
+
+    #remove containers and images part
     # supprimer le container et l'image si ils existent déjà
     - name: stop and remove contgo_server
       docker_container:
         name: contgo_server
         state: absent
 
-    - name: stop and remove go_serverimg
+    - name: stop and remove contnginx_reverse_proxy
+      docker_container:
+        name: contnginx_reverse_proxy
+        state: absent
+      when: 
+        - ansible_default_ipv4.address == "172.28.100.90"
+
+
+
+    - name: stop and remove go_serverimg on every worker
       docker_image:
         name: go_serverimg
         state: absent
         force_absent: yes
 
+    - name: stop and remove nginx_reverse_proxy_img 
+      docker_image:
+        name: nginx_reverse_proxy_img
+        state: absent
+        force_absent: yes
+      when: 
+        - ansible_default_ipv4.address == "172.28.100.90"
 
-   
 
-    - name: build go_serverimg image
+   
+    #build images part
+    - name: build go_serverimg image on every worker
       docker_image:
         build:
-          path: /root/Gofiles
+          path: /root/worker_go_server_files
         name: go_serverimg
 
 
+    - name: build nginx_reverse_proxy_img image on worker1
+      docker_image:
+        build:
+          path: /root/reverse_proxy_nginx
+        name: nginx_reverse_proxy_img
+      when: 
+        - ansible_default_ipv4.address == "172.28.100.90"
 
 
-
+    #build containers part
     - name: build contgo_server container for worker1 (172.28.100.90)
       docker_container:
         name: contgo_server
@@ -82,4 +118,17 @@
         env:
           HOSTNAME: "{{ worker4Hostname }}"
       when: 
-        - ansible_default_ipv4.address == "172.28.100.72"
\ No newline at end of file
+        - ansible_default_ipv4.address == "172.28.100.72"
+
+
+
+
+    - name: build contnginx_reverse_proxy container for worker1 (172.28.100.90)
+      docker_container:
+        name: contnginx_reverse_proxy
+        image: nginx_reverse_proxy_img
+        ports: 
+          - "9090:9090"
+        state: started
+      when: 
+        - ansible_default_ipv4.address == "172.28.100.90"
\ No newline at end of file
diff --git a/TP5_06.11.20/ansible/nginx_loadbalencing/worker_go_server_files/Dockerfile b/TP5_06.11.20/ansible/nginx_loadbalencing/worker_go_server_files/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..150f1b02ddf0d2ee98b1540bd728a4ffcadbca29
--- /dev/null
+++ b/TP5_06.11.20/ansible/nginx_loadbalencing/worker_go_server_files/Dockerfile
@@ -0,0 +1,8 @@
+FROM golang:alpine AS builder
+COPY main.go /app/
+WORKDIR /app
+RUN CGO_ENABLED=0 go build -ldflags="-w -s" main.go
+
+FROM scratch AS runner
+COPY --from=builder /app/main /app/main
+ENTRYPOINT ["/app/main"]
\ No newline at end of file
diff --git a/TP5_06.11.20/ansible/nginx_loadbalencing/worker_go_server_files/main.go b/TP5_06.11.20/ansible/nginx_loadbalencing/worker_go_server_files/main.go
new file mode 100644
index 0000000000000000000000000000000000000000..d8f475894660887cb5c98ebddf2a82538133b352
--- /dev/null
+++ b/TP5_06.11.20/ansible/nginx_loadbalencing/worker_go_server_files/main.go
@@ -0,0 +1,16 @@
+package main
+
+import(
+	"fmt"
+	"net/http"
+	"os"
+)
+
+func main(){
+	http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request){
+		r.Header.Set("Content-type", "text/html")
+		fmt.Fprintf(w, "<h1>Hello hostname: %s</h1>", os.Getenv("HOSTNAME"))
+	})
+
+	http.ListenAndServe(":80", nil)
+}
\ No newline at end of file