
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.