LINUX.ORG.RU

История изменений

Исправление user_id_68054, (текущая версия) :

Т.о. HTTP/1.1 предполагает наличие постоянных соединений. Я это все прочитаю, засумирую и сделаю. Протестирую. Не волнуйтесь :)

хорошо! в целом это полезное дело (и не будет идти в разрез с сущестющими реализациями клиентов HTTP/1.1).

но только умоляю, если будешь реализовывать *честный* keep-alive (а не долгий timeout, напоминающий внешне keep-alive) — то пожалуйста выставь соответствующую опцию а сокете:

   int optval;
   socklen_t optlen = sizeof(optval);

   // ...

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_KEEPALIVE, &optval, optlen) < 0) {
      perror("setsockopt()");
      close(s);
      exit(EXIT_FAILURE);
   }

(копировал из этого примера — http://tldp.org/HOWTO/TCP-Keepalive-HOWTO/programming.html )

иначе я буду очень волноваться.. (у меня последнее время одни только нервные расстройства на почве этих-всяких keep-alive :-).. хренова туча народу уже наделала утечки ресурсов (из-за неправильных реализаций), а я только и давай им всем отписывать багрепорты — прям кошмар последнего столетия)

# P.S.: так как речь идёт об «nginx <-> httpd» — утечек ресурсов НЕ будет даже при неправильной-реализации, если обе программы запущены на одной компьютере.

Исправление user_id_68054, :

Т.о. HTTP/1.1 предполагает наличие постоянных соединений. Я это все прочитаю, засумирую и сделаю. Протестирую. Не волнуйтесь :)

хорошо! в целом это полезное дело (и не будет идти в разрез с сущестющими реализациями клиентов HTTP/1.1).

но только умоляю, если будешь реализовывать *честный* keep-alive (а не долгий timeout, напоминающий внешне keep-alive) — то пожалуйста выставь соответствующую опцию а сокете:

   int optval;
   socklen_t optlen = sizeof(optval);

   // ...

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_KEEPALIVE, &optval, optlen) < 0) {
      perror("setsockopt()");
      close(s);
      exit(EXIT_FAILURE);
   }

(копировал из этого примера — http://tldp.org/HOWTO/TCP-Keepalive-HOWTO/programming.html )

иначе я буду очень волноваться.. (у меня последнее время одни только нервные расстройства на почве этих-всяких keep-alive :-).. хренова туча народу уже наделала утечки ресурсов (из-за неправильных реализаций), а я только и давай им всем отписывать багрепорты — прям кошмар последнего столетия)

# P.S.: так как речь идёт об «nginx <-> httpd» — утечек ресурсов не будет даже при неправильной-реализации

Исправление user_id_68054, :

Т.о. HTTP/1.1 предполагает наличие постоянных соединений. Я это все прочитаю, засумирую и сделаю. Протестирую. Не волнуйтесь :)

хорошо! в целом это полезное дело (и не будет идти в разрез с сущестющими реализациями клиентов HTTP/1.1).

но только умоляю, если будешь реализовывать *честный* keep-alive (а не долгий timeout, напоминающий внешне keep-alive) — то пожалуйста выставь соответствующую опцию а сокете:

   int optval;
   socklen_t optlen = sizeof(optval);

   // ...

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_KEEPALIVE, &optval, optlen) < 0) {
      perror("setsockopt()");
      close(s);
      exit(EXIT_FAILURE);
   }

(копировал из этого примера — http://tldp.org/HOWTO/TCP-Keepalive-HOWTO/programming.html )

иначе я буду очень волноваться.. (у меня последнее время одни только нервные расстройства на почве этих-всяких keep-alive :-).. хренова туча народу уже наделала утечки ресурсов (из-за неправильных реализаций), а я только и давай им всем отписывать багрепорты — прям кошмар последнего столетия)

Исходная версия user_id_68054, :

Т.о. HTTP/1.1 предполагает наличие постоянных соединений. Я это все прочитаю, засумирую и сделаю. Протестирую. Не волнуйтесь :)

хорошо! в целом это полезное дело (и не будет идти в разрез с сущестющими реализациями клиентов HTTP/1.1).

но только умоляю, если будешь реализовывать *честный* keep-alive (а не долгий timeout, напоминающий внешне на keep-alive) — то пожалуйста выставь соответствующую опцию а сокете:

   int optval;
   socklen_t optlen = sizeof(optval);

   // ...

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_KEEPALIVE, &optval, optlen) < 0) {
      perror("setsockopt()");
      close(s);
      exit(EXIT_FAILURE);
   }

(копировал из этого примера — http://tldp.org/HOWTO/TCP-Keepalive-HOWTO/programming.html )

иначе я буду очень волноваться.. (у меня последнее время одни только нервные расстройства на почве этих-всяких keep-alive :-))