
Привет, у меня есть этот файл по умолчанию.
server {
listen 80 default_server;
listen 443 default_server;
listen [::]:80 default_server;
listen [::]:443 default_server;
server_name _;
return 444;
}
Это ловит все... в той же папке (с поддержкой сайтов) у меня есть файл 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
}
Если я оставляю файл по умолчанию отключенным (удаленным) и захожу на my.domain.com, то вижу свою страницу. Теперь, если я добавляю файл по умолчанию, я получаю 444 от Nginx (закрыто). Почему..?
EDIT: После некоторых тестов я обнаружил, что проблема в прослушивании 443 default_server; часть, которая ловит каждый https-запрос, почему?? У меня есть блокировка с моим доменом и прослушиванием 443!
решение1
Согласно этому ответуhttps://serverfault.com/a/841646/459947
Мне пришлось добавить сертификат в catch_all. После того, как я сделал это с самоподписанным сертификатом, я получаю 444 на моем IP (верно, так как он не блокируется) и предупреждение SSL и 444 при принятии на HTTPS моего IP. Так что это работает для меня, я хотел бы, чтобы был лучший способ сделать это.
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;
}
В соответствии сhttps://serverfault.com/a/593668/459947Вы могли бы сделатьеслина блоках, чтобы проверить, правильный ли домен. Я имею в виду, я думаю, это работает, но я не хочу добавлять это в каждый блок. Если вы думаете, что это лучшая идея, дайте мне знать.