Apache HTTP Server: Тайм-аут 10 минут (600 с) в httpd.conf; но тайм-аут API после 5 минут каждый раз

Вопрос или проблема

У меня комбинация Apache HTTP Server -> Wildfly и keycloak в качестве аутентификации.

[root@alt-esb-app01 conf.d]$ httpd -version
Версия сервера: Apache/2.4.6 (CentOS)
Сервер собран:   14 ноя 2016 18:04:44

У меня развернут REST API в Wildfly. Я приостанавливаю поток на 7 минут. Логи API работают до 7 минут. Но Postman или Java клиент говорят:

Ответ Postman:

Не удалось получить ответ
Ошибка: read ECONNRESET
GET https://masterdata.test.chintugrator.cosng.net/AccountsService/api/test
Ошибка: read ECONNRESET
Заголовки запроса
Authorization: Basic dXNlcjE6dXNlcjE=
User-Agent: PostmanRuntime/7.29.0
Accept: */*
Cache-Control: no-cache
Postman-Token: bb514333-62ef-4bac-81ca-2d7ac16b7f07
Host: masterdata.chintugrator.cosng.net
Accept-Encoding: gzip, deflate, br
Connection: keep-alive

Конфигурация Apache HTTP:

ServerRoot "/etc/httpd"

LoadModule auth_openidc_module modules/mod_auth_openidc.so
Include conf.modules.d/*.conf

User apache
Group apache

ServerAdmin root@localhost

ServerName esb-app01.unix.cosng.net:80

<Directory />
    AllowOverride none
    Require all denied
</Directory>

DocumentRoot "/var/www/html"
TimeOut 600

Включен masterdata.conf

<VirtualHost 10.0.1.1:1001>
    ServerName masterdata.test.chintugrator.cosng.net

    ProxyPreserveHost on
    ProxyPass / balancer://masterdata/
    ProxyPassReverse / balancer://masterdata

    RequestHeader set X-Forwarded-Ssl on
    RequestHeader set X-Forwarded-Proto "https"

    CustomLog /var/log/httpd/net.cosng.chintugrator.test.masterdata_access.log combined
    ErrorLog /var/log/httpd/net.cosng.chintugrator.test.masterdata_error.log
</VirtualHost>

Где еще я могу искать Timeout в HTTPD? Я добавил тайм-аут в VirtualHost, но результаты в Postman остаются прежними.

Может ли это быть связано с настройками фаервола или сети?

wildfly:

введите описание изображения здесь

Немного поздно, но у меня была аналогичная проблема, и я решил ее сегодня.

В моем случае мой Apache использовал fastcgi, и файл конфигурации, который мне нужно было изменить, был fastcgi.conf: RequestTimeout=”600″ (на 10 минут).

Ответ или решение

Проблема тайм-аутов в Apache HTTP Server с Wildfly и Keycloak

Введение

При использовании сочетания Apache HTTP Server с Wildfly и Keycloak для развертывания REST API можно столкнуться с проблемами, связанными с тайм-аутами. В данной статье мы подробно рассмотрим ваши настройки и предложим возможные решения для устранения проблемы с тайм-аутом API, который срабатывает через 5 минут, несмотря на то, что в конфигурации сервера указан тайм-аут в 10 минут (600 секунд).

Настройки сервера

Ваш текущий конфигурационный файл httpd.conf выглядит следующим образом:

ServerRoot "/etc/httpd"

LoadModule auth_openidc_module modules/mod_auth_openidc.so
Include conf.modules.d/*.conf

User apache
Group apache

ServerAdmin root@localhost

ServerName esb-app01.unix.cosng.net:80

<Directory />
    AllowOverride none
    Require all denied
</Directory>

DocumentRoot "/var/www/html"
TimeOut 600

При этом имеется виртуальный хост с настройками прокси:

<VirtualHost 10.0.1.1:1001>
    ServerName masterdata.test.chintugrator.cosng.net

    ProxyPreserveHost on
    ProxyPass / balancer://masterdata/
    ProxyPassReverse / balancer://masterdata

    RequestHeader set X-Forwarded-Ssl on
    RequestHeader set X-Forwarded-Proto "https"

    CustomLog /var/log/httpd/net.cosng.chintugrator.test.masterdata_access.log combined
    ErrorLog /var/log/httpd/net.cosng.chintugrator.test.masterdata_error.log
</VirtualHost>

Варианты решения проблемы

1. Проверка конфигурации Apache

Убедитесь, что конфигурационный файл Apache загружен без ошибок. Проверьте файл httpd.conf на наличие директивы KeepAlive и настройки KeepAliveTimeout:

KeepAlive On
KeepAliveTimeout 600

Также обратите внимание на настройки модуля mod_proxy и его конфигурацию. Возможно, вам потребуется настроить ProxyTimeout, который может предотвращать тайм-ауты на уровне прокси:

ProxyTimeout 600

2. Проверка настроек Wildfly

Возможная проблема может находиться также в настройках Wildfly. Проверьте конфигурацию вашего HTTP-сервера Wildfly и убедитесь, что тайм-ауты на стороне приложения соответствуют ожиданиям. Изучите настройки, связанные с HTTP или с конкретными ресурсами:

<http-listener name="default" socket-binding="http" redirect-socket="https" enable-http2="true">
    <http-configuration>
        <request-timeout>600</request-timeout>
    </http-configuration>
</http-listener>

3. Проверка настроек FastCGI

Если ваше приложение использует FastCGI, как это произошло в другом случае, вам следует проверить конфигурацию FastCGI и установить значение RequestTimeout на 600 секунд, что позволит избежать преждевременных тайм-аутов.

<IfModule mod_fastcgi.c>
    FastCgiConfig -idle-timeout 600 
</IfModule>

4. Влияние сети и брандмауэра

Нельзя исключить влияние сетевых настроек или брандмауэра на ваше соединение. Если, например, ваше сетевое оборудование или брандмауэр настроено на 5-минутный тайм-аут для соединений, это может вызывать проблему. Убедитесь, что сетевые настройки соответствуют требованиям вашего приложения.

Заключение

Для устранения проблемы с тайм-аутами API необходимо проверить настройки Apache HTTP Server, настройки Wildfly, конфигурацию FastCGI и сетевые настройки. Убедившись, что все параметры соответствуют требованиям вашего приложения, вы сможете устранить тайм-ауты и обеспечить стабильную работу API.

Рекомендуемые действия:

  • Проведите проверку всех настроек, связанных с тайм-аутами.
  • Перезапустите сервисы после внесения изменений в конфигурацию.
  • Проверьте логи Apache и Wildfly на наличие предупреждений или ошибок.

Эта стратегия обеспечит не только устранение текущей проблемы, но и оптимизацию работы вашего приложения в дальнейшем.

Оцените материал
Добавить комментарий

Капча загружается...