>[оверквотинг удален]
> уходить 444.
> Подробности:
> в конфиге стоит прямой редирект с http на https, но до https
> дело не доходит.
> в логе вот такое:
> 51.38.12.21 - FR - [24/Apr/2018:06:05:44 +0500] my.domain.ru \x16\x03\x01\x02\x00\x01\x00\x01
> \xFC\x03\x03Q\x15\xA6{7\x0E\xC3U\xD7\x044\x97T\xE0u\x13\xFB\xA5\x1E\x19\xA6b\xA9J\xF6\x13\x04
> \xFA\x80\x01}\xF8\x00\x00\xDA\x00\x05\x00\x04\x00\x02\x00\x01\x00\x16\x003\x009\x00:\x00\x18
> \x005\x00 400 166 "-" "-" "-"
> 0.032-- Если это не результат кривого редиректа где-то на вашей стороне, то эта дрянь больше похожа на кривой софт у клиента. Возможно, специально кривой — т.е., проверка сервера на вшивость. Ваш nginx абсолютно корректно возвращает код 400, так как тоже офигевает и сделать более ничего не может.
Код 444 он возвратит когда будет прочитана и распознана хотя бы первая строка HTTP-запроса. А в вашем случае в первой строке какая-то хрень, там ни HTTP-метода, ни запрашиваемого пути, ни версии протокола, поэтому nginx просто сразу прощается. Мог бы, кстати, и 505 отвечать, но 400 всё же подходит больше в такой ситуации, согласитесь.
Попробуйте отправить мусор на сервер и посмотрите на результат на экране и в логах:
printf "ad asdad ljalsjdlaj lsjdljs lfasljf ljslfd\r\nlalalala\r\n" | nc address 80
P.S.: Если интересно, раскодируйте переданную байтовую строку из текстового представления и засуньте в дизассемблер — не удивлюсь, если там окажется что-то осмысленное. :)