diff --git a/nginx-proxy/Dockerfile b/nginx-proxy/Dockerfile index d274df4..d893949 100644 --- a/nginx-proxy/Dockerfile +++ b/nginx-proxy/Dockerfile @@ -6,6 +6,7 @@ LABEL org.label-schema.name="nginx-proxy" COPY nginx.tmpl /app/ COPY nginx.conf /etc/nginx/nginx.conf COPY version.conf /version.conf +COPY default.html /etc/nginx/html/default.html RUN apt-get update \ && apt-get install --no-install-recommends apache2-utils -y && rm -rf /var/lib/apt/lists/* diff --git a/nginx-proxy/default.html b/nginx-proxy/default.html new file mode 100644 index 0000000..8e91267 --- /dev/null +++ b/nginx-proxy/default.html @@ -0,0 +1,15 @@ + + +
+Please contact the administrator or check your domain settings.
+ + diff --git a/nginx-proxy/nginx.tmpl b/nginx-proxy/nginx.tmpl index 9df5ce2..5ac62da 100644 --- a/nginx-proxy/nginx.tmpl +++ b/nginx-proxy/nginx.tmpl @@ -184,23 +184,57 @@ server { {{ $enable_ipv6 := eq (or ($.Env.ENABLE_IPV6) "") "true" }} server { server_name _; # This is just an invalid value which will never trigger on a real hostname. - listen 80; + listen 80 default_server; {{ if $enable_ipv6 }} - listen [::]:80; + listen [::]:80 default_server; {{ end }} - return 503; + + root /etc/nginx/html; + + # Custom error page for 503 + error_page 503 /default.html; + + location / { + return 503; + } + + # Serve the error page without redirect + location = /default.html { + root /etc/nginx/html; + internal; + add_header Cache-Control "no-cache, no-store, must-revalidate" always; + add_header Pragma "no-cache" always; + add_header Expires "0" always; + } } {{ if (and (exists "/etc/nginx/certs/default.crt") (exists "/etc/nginx/certs/default.key")) }} server { server_name _; # This is just an invalid value which will never trigger on a real hostname. - listen 443 ssl; + listen 443 ssl default_server; http2 on; {{ if $enable_ipv6 }} - listen [::]:443 ssl; + listen [::]:443 ssl default_server; http2 on; {{ end }} - return 503; + + root /etc/nginx/html; + + # Custom error page for 503 + error_page 503 /default.html; + + location / { + return 503; + } + + # Serve the error page without redirect + location = /default.html { + root /etc/nginx/html; + internal; + add_header Cache-Control "no-cache, no-store, must-revalidate" always; + add_header Pragma "no-cache" always; + add_header Expires "0" always; + } ssl_session_tickets off; ssl_certificate /etc/nginx/certs/default.crt;