diff --git a/nginx/sites-available/default-catchall.conf b/nginx/sites-available/default-catchall.conf new file mode 100644 index 0000000..719cdaa --- /dev/null +++ b/nginx/sites-available/default-catchall.conf @@ -0,0 +1,34 @@ +# 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, agora usando a página de erro 403 estática. + +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; + + # --- LÓGICA FINAL E CORRIGIDA --- + # 1. Define o diretório raiz onde o Nginx irá procurar pelos ficheiros de erro. + root /var/www/html; + + # 2. Mapeia o código de erro 403 para o seu ficheiro HTML estático. + error_page 403 /errors/403.html; + + # 3. Para qualquer requisição que chegue a este bloco, retorna um erro 403. + # O Nginx irá então, internamente, servir a página definida em 'error_page'. + return 403; +}