nginx catch-all captura todo

nginx catch-all captura todo

Hola, tengo este archivo predeterminado.

server {
    listen 80 default_server;
    listen 443 default_server;
    listen [::]:80 default_server;
    listen [::]:443 default_server;
    server_name _;
    return 444;
}

Esto captura todo... en la misma carpeta (sitios habilitados) tengo mi archivo domain.com

server {
    listen 80;
    server_name my.domain.com;
    location /.well-known/acme-challenge {
        default_type "text/plain";
        root /storage/webserver/certbot;
    }
    #Forces all other requests to HTTPS
    location / {
        return 301 https://$host$request_uri;
    }
}
server {
    listen 443 ssl http2;
    server_name my.domain.com;
    ## SSL STUFF ##
    root /path/to/root;
    index index.html index.php;

    location / {
        try_files $uri $uri/ $uri.html;
    }


    ### Site config
}

Si dejo el valor predeterminado deshabilitado (eliminado) y voy a my.domain.com, veo mi página. ahora, si agrego el archivo predeterminado, obtengo un 444 de Nginx (cerrado). Por qué..?

EDITAR: Después de algunas pruebas, encontré que el problema era listening 443 default_server; parte, detecta cada solicitud https, ¿por qué? ¡Tengo un bloque con mi dominio y escucho 443!

Respuesta1

Según esta respuestahttps://serverfault.com/a/841646/459947

Tuve que agregar un certificado al archivo catch_all. Después de hacer eso con un certificado autofirmado, obtengo 444 en mi IP (correcto ya que no tiene bloqueo) y una advertencia de SSL y 444 al aceptar mi IP en HTTPS. Entonces esto funciona para mí, desearía que hubiera una mejor manera de hacerlo.

server {
    listen 80 default_server;
    listen 443 ssl default_server;
    server_name _;
    ssl_certificate <path to cert>
    ssl_certificate_key <path to key>
    return 444;
}

De acuerdo ahttps://serverfault.com/a/593668/459947podrías hacer unsien los bloques para comprobar si el dominio es correcto. Quiero decir, supongo que funciona, pero no quiero agregar eso a cada bloque. Si crees que esta es una mejor idea, házmelo saber.

información relacionada