<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;">Добрый день,<br id="lineBreakAtBeginningOfMessage"><div><br><blockquote type="cite"><div>On 27 Jun 2024, at 5:02 PM, Roman Arutyunyan <arut@nginx.com> wrote:</div><br class="Apple-interchange-newline"><div><meta charset="UTF-8"><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;">Добрый день,.</span><br id="lineBreakAtBeginningOfMessage" style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;"><div style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;"><br><blockquote type="cite"><div>On 5 Jun 2024, at 7:41 PM, Gena Makhomed <gmm@csdoc.com> wrote:</div><br class="Apple-interchange-newline"><div><div>Здравствуйте, All!<br><br>есть такой конфиг:<br><br># cat /etc/nginx/nginx.conf<br><br>events {<br>   worker_connections 10240;<br>}<br><br>stream {<br>   server {<br>       listen [::]:443 bind default_server ssl;<br>       listen 443 bind default_server ssl;<br>       ssl_reject_handshake on;<br>   }<br>}<br><br>при попытке его тестирования - получаю ошибку:<br><br># nginx -t<br>nginx: [emerg] no handler for server in /etc/nginx/nginx.conf:7<br>nginx: configuration file /etc/nginx/nginx.conf test failed<br><br>если в конфиге поменять слово stream на http<br>- тогда тестирование конфига происходит без проблем.<br><br>почему такое отличие, это ошибка в nginx? можно ли ее исправить,<br>чтобы директива ssl_reject_handshake вела себя одинаково,<br>и в контексте http и в контексте stream?<br></div></div></blockquote><div><br></div><div>Отличие в том, что в http есть дефолтные хендлеры, а в stream их нет т.к. семантика более общая.</div><div><br></div><div>Если в конфиге есть ssl_reject_handshake, то действительно можно было бы не требовать наличие хендлера.</div><div>Однако проверять такое очень неудобно. Переносить ошибку в рантайм тоже не хочется.</div><div>В общем, наверное надо как-то улучшить, но хорошего способа пока не вижу. Будем иметь в виду, спасибо.</div></div></div></blockquote></div><div><blockquote type="cite"><div><div style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;"><br><blockquote type="cite"><div><div>workaround: ошибки не будет, если в блок server<br>в блоке stream добавить совершенно не нужную в данном<br>случае и бесполезную директиву proxy_pass 127.0.0.1:443;<br></div></div></blockquote><div><br></div>Проще добавить return.</div><div style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;"><br><blockquote type="cite"><div><div>используется бинарная сборка nginx/1.27.0 с сайта nginx.org<br><br># dnf info nginx<br>Name         : nginx<br>Epoch        : 1<br>Version      : 1.27.0<br>Release      : 2.el9.ngx<br>Architecture : x86_64<br>Source       : nginx-1.27.0-2.el9.ngx.src.rpm<br>From repo    : nginx-mainline<br>Summary      : High performance web server<br>URL          : https://nginx.org/<br><br>--<span class="Apple-converted-space"> </span><br>Best regards,<br>Gena<br>_______________________________________________<br>nginx-ru mailing list<br>nginx-ru@nginx.org<br>https://mailman.nginx.org/mailman/listinfo/nginx-ru<br></div></div></blockquote></div><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;"><div style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;"><div dir="auto" style="caret-color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;"><div>----</div><div>Roman Arutyunyan</div><div><a href="mailto:arut@nginx.com">arut@nginx.com</a></div></div></div></div></blockquote></div><div><br></div><div>В итоге перенесли проверку в рантайм:</div><div><br></div><div><a href="https://hg.nginx.org/nginx/rev/072ca4906154">https://hg.nginx.org/nginx/rev/072ca4906154</a></div><div><br><blockquote type="cite"><div></div></blockquote></div><div><div>Теперь ssl_reject_handshake ведет себя одинаково в http и stream.</div><div><br></div><div>Спасибо за репорт.</div><div><br></div></div><div>
<div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;"><div>----</div><div>Roman Arutyunyan</div><div>arut@nginx.com</div><div><br></div></div><br class="Apple-interchange-newline"><br class="Apple-interchange-newline">

</div>
<br></body></html>