add custom 502 error page
This commit is contained in:
@@ -22,8 +22,7 @@ packages:
|
|||||||
- git
|
- git
|
||||||
- nfs-common
|
- nfs-common
|
||||||
- curl
|
- curl
|
||||||
- python3-flask
|
- nginx
|
||||||
- gunicorn
|
|
||||||
|
|
||||||
write_files:
|
write_files:
|
||||||
- path: /opt/environment/.env
|
- path: /opt/environment/.env
|
||||||
@@ -38,9 +37,18 @@ write_files:
|
|||||||
permissions: "0755"
|
permissions: "0755"
|
||||||
content: |
|
content: |
|
||||||
${traefik-service}
|
${traefik-service}
|
||||||
|
- path: /usr/share/nginx/error-pages/502.html
|
||||||
|
permissions: "0644"
|
||||||
|
content: |
|
||||||
|
{nginx-error-502}
|
||||||
|
- path: /etc/nginx/sites-available/default
|
||||||
|
permissions: "0644"
|
||||||
|
content: |
|
||||||
|
{nginx-error-configuration}
|
||||||
runcmd:
|
runcmd:
|
||||||
- /opt/gateway/install-traefik.sh
|
- /opt/gateway/install-traefik.sh
|
||||||
|
- ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled
|
||||||
|
- systemctl start nginx.service
|
||||||
|
|
||||||
final_message: |
|
final_message: |
|
||||||
Base system ready for ${hostname}
|
Base system ready for ${hostname}
|
||||||
43
modules/apps/gateway/lib/scripts/502.html
Normal file
43
modules/apps/gateway/lib/scripts/502.html
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="fr">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=500, initial-scale=1.0">
|
||||||
|
<title>Service unavailable</title>
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
height: 70vh;
|
||||||
|
background-color: rgba(248, 241, 219, 0.801);
|
||||||
|
}
|
||||||
|
.box {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
box-shadow: rgba(76, 76, 80, 0.2) 0px 7px 29px 0px;
|
||||||
|
width: 30vw;
|
||||||
|
padding: 2rem;
|
||||||
|
background-color: rgb(255, 255, 255);
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="box">
|
||||||
|
<h1>Le service n'est pas disponible.</h1>
|
||||||
|
<p>
|
||||||
|
Il est possible que le serveur soit éteint pour les raisons suivantes :
|
||||||
|
<ul>
|
||||||
|
<li>Maintenance hebdomadaire (mise à jour des services ou sauvegarde).</li>
|
||||||
|
<li>Le service n'est plus maintenu.</li>
|
||||||
|
</ul>
|
||||||
|
</p>
|
||||||
|
<aside>
|
||||||
|
Contactez l'administrateur ou patientiez quelques instant.
|
||||||
|
</aside>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
10
modules/apps/gateway/lib/scripts/default
Normal file
10
modules/apps/gateway/lib/scripts/default
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
server {
|
||||||
|
listen 8090;
|
||||||
|
server_name localhost;
|
||||||
|
|
||||||
|
error_page 502 /502.html;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
root /usr/share/nginx/error-pages;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -25,7 +25,8 @@ module "vm" {
|
|||||||
proxmox_host_ip = var.proxmox_host_ip
|
proxmox_host_ip = var.proxmox_host_ip
|
||||||
traefik-service = indent(6, file("${path.module}/lib/services/traefik.service"))
|
traefik-service = indent(6, file("${path.module}/lib/services/traefik.service"))
|
||||||
install-traefik-script = indent(6, file("${path.module}/lib/scripts/install-traefik.sh"))
|
install-traefik-script = indent(6, file("${path.module}/lib/scripts/install-traefik.sh"))
|
||||||
|
nginx-error-configuration = indent(6, file("${path.module}/lib/scripts/default"))
|
||||||
|
nginx-error-502 = indent(6, file("${path.module}/lib/scripts/502.html"))
|
||||||
env-file-content = indent(6, file("${path.module}/.env"))
|
env-file-content = indent(6, file("${path.module}/.env"))
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -17,6 +17,8 @@ http:
|
|||||||
service: ${subservice.name}
|
service: ${subservice.name}
|
||||||
tls:
|
tls:
|
||||||
certResolver: letsencrypt
|
certResolver: letsencrypt
|
||||||
|
middlewares:
|
||||||
|
- redirect-errors
|
||||||
%{~ endfor }
|
%{~ endfor }
|
||||||
%{~ endfor }
|
%{~ endfor }
|
||||||
nextcloud:
|
nextcloud:
|
||||||
@@ -26,7 +28,8 @@ http:
|
|||||||
service: nextcloud
|
service: nextcloud
|
||||||
tls:
|
tls:
|
||||||
certResolver: letsencrypt
|
certResolver: letsencrypt
|
||||||
|
middlewares:
|
||||||
|
- redirect-errors
|
||||||
rocket:
|
rocket:
|
||||||
rule: "Host(`discussion.fefan.fr`)"
|
rule: "Host(`discussion.fefan.fr`)"
|
||||||
entryPoints:
|
entryPoints:
|
||||||
@@ -34,7 +37,8 @@ http:
|
|||||||
service: rocket
|
service: rocket
|
||||||
tls:
|
tls:
|
||||||
certResolver: letsencrypt
|
certResolver: letsencrypt
|
||||||
|
middlewares:
|
||||||
|
- redirect-errors
|
||||||
wiki:
|
wiki:
|
||||||
rule: "Host(`benoit.mathieu.wiki`)"
|
rule: "Host(`benoit.mathieu.wiki`)"
|
||||||
entryPoints:
|
entryPoints:
|
||||||
@@ -42,7 +46,8 @@ http:
|
|||||||
service: wiki
|
service: wiki
|
||||||
tls:
|
tls:
|
||||||
certResolver: letsencrypt
|
certResolver: letsencrypt
|
||||||
|
middlewares:
|
||||||
|
- redirect-errors
|
||||||
vaultwarden:
|
vaultwarden:
|
||||||
rule: "Host(`vaultwarden.aldon.fr`)"
|
rule: "Host(`vaultwarden.aldon.fr`)"
|
||||||
entryPoints:
|
entryPoints:
|
||||||
@@ -50,7 +55,8 @@ http:
|
|||||||
service: vaultwarden
|
service: vaultwarden
|
||||||
tls:
|
tls:
|
||||||
certResolver: letsencrypt
|
certResolver: letsencrypt
|
||||||
|
middlewares:
|
||||||
|
- redirect-errors
|
||||||
keycloak:
|
keycloak:
|
||||||
rule: "Host(`keycloak.aldon.fr`)"
|
rule: "Host(`keycloak.aldon.fr`)"
|
||||||
entryPoints:
|
entryPoints:
|
||||||
@@ -58,6 +64,8 @@ http:
|
|||||||
service: keycloak
|
service: keycloak
|
||||||
tls:
|
tls:
|
||||||
certResolver: letsencrypt
|
certResolver: letsencrypt
|
||||||
|
middlewares:
|
||||||
|
- redirect-errors
|
||||||
services:
|
services:
|
||||||
%{~ for _, service in services }
|
%{~ for _, service in services }
|
||||||
%{~ for _, subservice in service }
|
%{~ for _, subservice in service }
|
||||||
@@ -100,7 +108,21 @@ http:
|
|||||||
servers:
|
servers:
|
||||||
- url: "http://192.168.1.34:8080"
|
- url: "http://192.168.1.34:8080"
|
||||||
|
|
||||||
|
error-handler-service:
|
||||||
|
loadBalancer:
|
||||||
|
passHostHeader: true
|
||||||
|
servers:
|
||||||
|
- url: "http://127.0.0.1:8090"
|
||||||
middlewares:
|
middlewares:
|
||||||
redirect-to-https:
|
redirect-to-https:
|
||||||
redirectScheme:
|
redirectScheme:
|
||||||
scheme: https
|
scheme: https
|
||||||
|
redirect-errors:
|
||||||
|
errors:
|
||||||
|
status:
|
||||||
|
- "500"
|
||||||
|
- "501"
|
||||||
|
- "503"
|
||||||
|
- "502"
|
||||||
|
service: error-handler-service
|
||||||
|
query: "/502.html"
|
||||||
|
|||||||
Reference in New Issue
Block a user