diff --git a/nginx/sites-available/default-catchall.conf b/nginx/sites-available/default-catchall.conf new file mode 100644 index 0000000..c409b91 --- /dev/null +++ b/nginx/sites-available/default-catchall.conf @@ -0,0 +1,29 @@ +# Ficheiro: /etc/nginx/sites-available/default-catchall.conf +# +# Bloco "catch-all" (padrão) que responde a acessos diretos ao IP +# ou a hostnames não configurados, com uma página de erro 403 amigável e auto-contida. + +server { + # Escuta nas portas 80 e 443 e se declara o servidor padrão. + listen 80 default_server; + listen [::]:80 default_server; + listen 443 ssl http2 default_server; + listen [::]:443 ssl http2 default_server; + + # Usa o certificado "snakeoil" para a conexão HTTPS. + ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem; + ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key; + + # O server_name "_" captura qualquer hostname que não tenha sido definido. + server_name _; + + # Desativa os logs para estas requisições, para não poluir os seus ficheiros. + access_log off; + log_not_found off; + + # --- A LÓGICA FINAL E CORRIGIDA --- + # Retorna um código 403 (Acesso Proibido) e serve o nosso HTML personalizado diretamente. + # Isto é mais robusto do que usar 'error_page' neste contexto específico. + # A variável $host será substituída pelo IP ou nome de domínio que o utilizador usou. + return 403 '
O nome de domínio $host que você tentou aceder não está configurado neste servidor.
Por favor, use a URL correta para aceder ao serviço desejado.
'; +}