<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    В общем поковырялся недолго в исходниках. Простым патчем врубил
    reuseport всегда, вне зависимости от того, что в конфигах находится.
    Может кому-то еще пригодится, хотя это конечно хак.<br>
    <br>
    <pre>diff --git a/src/core/ngx_connection.c b/src/core/ngx_connection.c</pre>
    <pre>index 5a53bac..5bb8de2 100644</pre>
    <pre>--- a/src/core/ngx_connection.c</pre>
    <pre>+++ b/src/core/ngx_connection.c</pre>
    <pre>@@ -472,7 +472,7 @@ ngx_open_listening_sockets(ngx_cycle_t *cycle)</pre>
    <pre> </pre>
    <pre> #if (NGX_HAVE_REUSEPORT)</pre>
    <pre> </pre>
    <pre>-            if (ls[i].reuseport) {</pre>
    <pre>+            if (1 || ls[i].reuseport) {</pre>
    <pre>                 int  reuseport;</pre>
    <pre> </pre>
    <pre>                 reuseport = 1;</pre>
    <br>
    <br>
    <br>
    <br>
    <div class="moz-cite-prefix">On 08.04.2016 14:54, navern wrote:<br>
    </div>
    <blockquote cite="mid:57079BF7.9070801@yandex.ru" type="cite">
      <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
      На одном из серверов около 11 тысяч виртуальных хостов в nginx'е.
      Бывает и больше:) Серверов тоже далеко не десять.<br>
      <br>
      Неизвестен заранее ни список IP адресов, ни список имен.<br>
      <br>
      Вариант с созданием для каждого IP адреса конфига в виде:
      <ip_addr>.conf и внутри дефолтным сервером конечно решает
      задачу, но для динамически выделяемых IP адресов не совсем
      подходит. Поэтому пока буду пытаться решать иначе.<br>
      <br>
      <div class="moz-cite-prefix">On 08.04.2016 14:25, Илья Шипицин
        wrote:<br>
      </div>
      <blockquote
cite="mid:CAFHpkQHW5gS1HTs0PyCrwxAUHoM2EK5++XpvpSdTHas8+94KiQ@mail.gmail.com"
        type="cite">
        <div dir="ltr">
          <div>
            <div>
              <div>
                <div>более или менее типовая ситуация заключается в том,
                  что вы отвечаете по известному списку днс-имен.<br>
                </div>
                это - недефолтные хосты.<br>
                <br>
              </div>
              в дефолтном вы делаете <br>
              <br>
              <br>
              server {<br>
                  listen x.x.x.x:80 default accept_filter=httpready;<br>
                  listen x.x.x.x:443 default http2 reuseport
              accept_filter=dataready;<br>
                  server_name _; <br>
                  access_log off;<br>
                  error_log /dev/null;<br>
                  location / {<br>
                      return 444;<br>
                  }<br>
              }<br>
              <br>
              <br>
            </div>
            и, всякие скрипткидизы, которые тыкают в ip-адрес и ищут
            уязвимый софт, перестают вас беспокоить в логах.<br>
            <br>
            <br>
            <br>
          </div>
          или у вас список доменов заранее неизвестен ? <br>
          <div>
            <div>
              <div><br>
              </div>
            </div>
          </div>
        </div>
        <div class="gmail_extra"><br>
          <div class="gmail_quote">8 апреля 2016 г., 14:41 пользователь
            navern <span dir="ltr"><<a moz-do-not-send="true"
                href="mailto:livingdeadzerg@yandex.ru" target="_blank">livingdeadzerg@yandex.ru</a>></span>
            написал:<br>
            <blockquote class="gmail_quote" style="margin:0 0 0
              .8ex;border-left:1px #ccc solid;padding-left:1ex">
              <div bgcolor="#FFFFFF" text="#000000"> Неудобно, потому
                что IP адреса не все дефолтные. И необязательно он будет
                всегда на этом сервере, а может мигрировать на другой.
                Придется еще добавлять логику по перемещению
                "дефолтного" IP и это всё действительно неудобно.<br>
                <br>
                Я понимаю, как работают дефолтные хосты, часть IP
                адресов так и указаны. Можете просто поверить на слово,
                что для части IP адресов дефолтный хост не очень
                работает.<br>
                <br>
                С точки зрения конфигурирования можно решить конечно, но
                это будет не очень удобно. Именно из-за динамического
                выделения IP. Придется держать дефолтный хост отдельно
                для каждого IP адреса и делать проверки при каждом
                перемещении/удалении IP адреса с сервера.<br>
                <br>
                listen * не подходит, потому что не только nginx слушает
                80 и 443 порт на сервере.<br>
                <br>
                Пока что уже полез ковыряться в исходниках, сейчас
                разбираюсь что и как работает там:)<span class=""><br>
                  <br>
                  <div>On 07.04.2016 22:10, Vadim A. Misbakh-Soloviov
                    wrote:<br>
                  </div>
                </span>
                <blockquote type="cite"><span class="">
                    <blockquote type="cite">
                      <pre>Ну в нашем случае нам как раз подходит указать везде reuseport явно,
чтобы он работал всегда. Указывать только в одном месте очень неудобно
для автоматического конфигурирования.
</pre>
                    </blockquote>
                    <pre>Ну, почему же? Просто обрабатывайте "дефолтный" хост отдельно от остальных. 
Сначала заполняете его (а то и вообще не трогаете один раз сконфигуряв) 
нужными опциями, кладёте в /etc/nginx/vhosts.d/default/??_bla. Потом уже 
кладёте "основные" в /etc/nginx/vhosts.d/client/site без указания опций в 
listen.
(пути от балды)

</pre>
                    <blockquote type="cite">
                      <pre>Это не очень как раз удобно, потому что проще накатывать конфиг по
шаблону, с включенными опциями сразу(как в случае с ssl/http2), чем
перед этим парсить все конфиги и проверять есть ли уже такой IP адрес и
есть ли там опции(тоже вариант решения проблемы, но мне он нравится пока
меньше).
</pre>
                    </blockquote>
                    <pre>1) http2, вроде как, всё равно будет работать для всех. Ну и лично я его тоже 
только в дефолтном держу.
2) зачем проверять? Просто явно генерите дефолтный конфиг. И достаточно будет 
проверять лишь его наличие.
3) а чем, кстати, вам не подходит listen * и [::]?


</pre>
                    <br>
                    <fieldset></fieldset>
                    <br>
                  </span>
                  <pre>_______________________________________________
nginx-ru mailing list
<a moz-do-not-send="true" href="mailto:nginx-ru@nginx.org" target="_blank">nginx-ru@nginx.org</a>
<a moz-do-not-send="true" href="http://mailman.nginx.org/mailman/listinfo/nginx-ru" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx-ru</a></pre>
                </blockquote>
                <br>
              </div>
              <br>
              _______________________________________________<br>
              nginx-ru mailing list<br>
              <a moz-do-not-send="true" href="mailto:nginx-ru@nginx.org">nginx-ru@nginx.org</a><br>
              <a moz-do-not-send="true"
                href="http://mailman.nginx.org/mailman/listinfo/nginx-ru"
                rel="noreferrer" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx-ru</a><br>
            </blockquote>
          </div>
          <br>
        </div>
        <br>
        <fieldset class="mimeAttachmentHeader"></fieldset>
        <br>
        <pre wrap="">_______________________________________________
nginx-ru mailing list
<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:nginx-ru@nginx.org">nginx-ru@nginx.org</a>
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://mailman.nginx.org/mailman/listinfo/nginx-ru">http://mailman.nginx.org/mailman/listinfo/nginx-ru</a></pre>
      </blockquote>
      <br>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
nginx-ru mailing list
<a class="moz-txt-link-abbreviated" href="mailto:nginx-ru@nginx.org">nginx-ru@nginx.org</a>
<a class="moz-txt-link-freetext" href="http://mailman.nginx.org/mailman/listinfo/nginx-ru">http://mailman.nginx.org/mailman/listinfo/nginx-ru</a></pre>
    </blockquote>
    <br>
  </body>
</html>