У меня очень уникальная интеграция PeopleSoft WebServer с модулем Apache OIDC и Azure Identity для аутентификации SSO. Это моя текущая Настройка тестирования производительности :
- Количество виртуальных машин - 4
- CPU / RAM - 4 ВЦП / 32 ГБ
- Weblogic - 12 экземпляров
Следующий поток показывает, как происходит аутентификация и перенаправление для Apache OIDC с PeopleSoft.
Браузер -> Балансировщик нагрузки -> Apache (OIDC) -> <-Azure -> (перевод заголовка в Apache) -> Weblogic Server
Итак, у меня есть 4 экземпляра Apache и 12 экземпляров weblogic, работающих на этих 4 виртуальных машинах.
Теперь в текущем производстве у меня есть CAMS SSO для аутентификации, который интегрирован с LB, и мы добавили наши weblogic-серверы (12) в узлы LB, которые обслуживают более 10 000 пользователей в час пик менее чем за 5 секунд. время входа SLA.
Поскольку мы планируем перейти с единого входа Azure с модулем Apache OIDC, мы добавили наши узлы Apache (4) в LB, и после проверки подлинности с помощью Azure Apache передаст заявки на серверные веб-логические серверы.
Но узким местом является время отклика при входе в систему, поскольку мы не можем масштабировать более 1000 пользователей с вышеупомянутой архитектурой и получать большое время отклика. Мы могли видеть, что он достигает более 11 секунд только для входа в систему, а остаток транзакции или навигации меньше 4 секунд.
PFB Фрагмент Apache httpd.conf:
LoadModule authn_core_module modules/mod_authn_core.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule authz_core_module modules/mod_authz_core.so
LoadModule access_compat_module modules/mod_access_compat.so
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule mime_module modules/mod_mime.so
LoadModule env_module modules/mod_env.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule version_module modules/mod_version.so
LoadModule ssl_module modules/mod_ssl.so
LoadModule headers_module modules/mod_headers.so
LoadModule status_module modules/mod_status.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule weblogic_module modules/mod_wl_24.so
LoadModule auth_openidc_module modules/mod_auth_openidc.so
LoadModule mpm_event_module modules/mod_mpm_event.so
Listen 443
ServerName *****
SSLEngine On
SSLCertificateFile ****
SSLCertificateKeyFile ****
OIDCProviderMetadataURL <Microsoft URL>
OIDCRedirectURI <Vanity URL>
OIDCResponseType id_token
OIDCCacheShmMax 50000
OIDCSessionMaxDuration 1200
OIDCStateMaxNumberOfCookies 7
OIDCClientID ******
OIDCClientSecret ******
OIDCCryptoPassphrase *****
<Location />
AuthType openid-connect
Require valid-user
RequestHeader set AUTH-USER "%{OIDC_CLAIM_samaccountname}e"
</Location>
<IfModule mod_weblogic.c>
WebLogicCluster 123.123.123.123:8000,123.123.123.123:8020,123.123.123.123:8030
MatchExpression /
WLCookieName SITE-PSJSESSIONID
</IfModule>
<IfModule mpm_event_module>
ServerLimit 16
StartServers 8
ThreadLimit 256
ThreadsPerChild 128
MinSpareThreads 512
MaxSpareThreads 2048
MaxRequestWorkers 2048
MaxConnectionsPerChild 0
MaxKeepAliveRequests 1000
</IfModule>
У нас нет опыта в определении размера Apache для одновременной загрузки, и вышеупомянутая настройка была основана на результатах PT. Но не смог точно настроить его так, чтобы получить оптимальные результаты.
Итак, я не уверен, как мне масштабировать Infra, чтобы уменьшить время входа в систему, так как добавление большего количества виртуальных машин в archicture не поможет, так как установка эквивалентна производственной. Любая помощь будет оценена!