время телнет apache 2.4.33 centOS7 - PullRequest
0 голосов
/ 28 июня 2018

Когда я пытаюсь time telnet XX.XX.XX.XX 80 мой apache 2.4.6 server на centOS7, результат равен 51 sec.

Мне удается опустить его с reqtimeout_module, используя

RequestReadTimeout header=1
RequestReadTimeout body=1

но это никогда не менее 32 сек. Найденная информация об этом - известная ошибка в 2.4.6 (если я правильно понимаю), и 30сек жестко закодированы и не могут быть изменены.

, поэтому я обновляю его до 2.4.33, но ничего не изменилось. Есть ли способ уменьшить это время?

1 Ответ

0 голосов
/ 29 июня 2018

Вы можете установить AcceptFilter http none внутри /etc/httpd/conf/httpd.conf.

По умолчанию в Linux AcceptFilter использует параметр сокета TCP_DEFER_ACCEPT (из manpages ):

TCP_DEFER_ACCEPT (since Linux 2.4)
  Allow a listener to be awakened only when data arrives on the
  socket.  Takes an integer value (seconds), this can bound the
  maximum number of attempts TCP will make to complete the
  connection.  This option should not be used in code intended
  to be portable.

Значение по умолчанию для этой опции в centos7 представляется 30 ( см. Этот ответ ).

Другой способ сделать это - использовать apache-module-sockopts :

LoadModule sockopts_module libexec/mod_sockopts.so
AddModule mod_sockopts.c

<IfModule mod_sockopts.c>
    # TCP_DEFER_ACCEPT
    SoTcpDeferAccept 20
</IfModule>
...