From 9ce05ee5a7bf3fac382d60003f61a8588ad58b92 Mon Sep 17 00:00:00 2001 From: Riddhesh Sanghvi Date: Wed, 3 Sep 2025 11:25:13 +0530 Subject: [PATCH 1/4] feat(nginx): set default server for HTTP and HTTPS --- nginx-proxy/nginx.tmpl | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/nginx-proxy/nginx.tmpl b/nginx-proxy/nginx.tmpl index 9df5ce2..975209a 100644 --- a/nginx-proxy/nginx.tmpl +++ b/nginx-proxy/nginx.tmpl @@ -184,23 +184,31 @@ 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; + location / { + try_files /default.html =404; + } } {{ 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; + location / { + try_files /default.html =404; + } ssl_session_tickets off; ssl_certificate /etc/nginx/certs/default.crt; From 12f8d1d432bfad930fdd9669adafa845e14e987d Mon Sep 17 00:00:00 2001 From: Riddhesh Sanghvi Date: Wed, 3 Sep 2025 11:25:30 +0530 Subject: [PATCH 2/4] feat(nginx): add default HTML page for unconfigured domains --- nginx-proxy/Dockerfile | 1 + nginx-proxy/default.html | 14 ++++++++++++++ 2 files changed, 15 insertions(+) create mode 100644 nginx-proxy/default.html 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..173d1ca --- /dev/null +++ b/nginx-proxy/default.html @@ -0,0 +1,14 @@ + + + + Site Not Configured + + + +

This domain is either disabled or not configured on this server.

+

Please contact the administrator or check your domain settings.

+ + From 936b0bd51c8f2005ae63e92bbf88634064dfb251 Mon Sep 17 00:00:00 2001 From: Riddhesh Sanghvi Date: Wed, 3 Sep 2025 11:48:29 +0530 Subject: [PATCH 3/4] style(nginx): add meta tag for SEO in default HTML page --- nginx-proxy/default.html | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/nginx-proxy/default.html b/nginx-proxy/default.html index 173d1ca..8e91267 100644 --- a/nginx-proxy/default.html +++ b/nginx-proxy/default.html @@ -1,14 +1,15 @@ - Site Not Configured - + Site Not Configured + + -

This domain is either disabled or not configured on this server.

-

Please contact the administrator or check your domain settings.

+

This domain is either disabled or not configured on this server.

+

Please contact the administrator or check your domain settings.

From 633cb5849d962a11cb92389b29b313dc706e9fde Mon Sep 17 00:00:00 2001 From: Riddhesh Sanghvi Date: Wed, 3 Sep 2025 11:48:51 +0530 Subject: [PATCH 4/4] feat(nginx): add custom error page for 503 responses --- nginx-proxy/nginx.tmpl | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/nginx-proxy/nginx.tmpl b/nginx-proxy/nginx.tmpl index 975209a..5ac62da 100644 --- a/nginx-proxy/nginx.tmpl +++ b/nginx-proxy/nginx.tmpl @@ -190,8 +190,21 @@ server { {{ end }} root /etc/nginx/html; + + # Custom error page for 503 + error_page 503 /default.html; + location / { - try_files /default.html =404; + 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; } } @@ -206,8 +219,21 @@ server { {{ end }} root /etc/nginx/html; + + # Custom error page for 503 + error_page 503 /default.html; + location / { - try_files /default.html =404; + 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;