Статус запроса HTTPS Apache ожидает некоторых запросов, и возвращается статус 502

Я развернул сервер на EC2 и tomcat. Я купил домен у goDaddy. Я использую HTTPD с mod_ssl для перенаправления URL. Когда я пытаюсь получить доступ к своему серверу, какой-то запрос находится в состоянии ожидания, но когда я обновляю браузер или повторно отправляю запрос, данные загружаются.

Я заметил, что только некоторые запросы терпят неудачу, независимо от того, использую ли я preworker или worker. Я отслеживал журналы запросов tomcat для apache, но запросы apache не перенаправляются на tomcat для этих запросов.

Теперь это блокирует мой производственный трафик, поскольку пользователь не может беспрепятственно получить доступ к этому приложению.

Я попытался получить доступ к приложению по IP, и у меня нет проблем с 502, но когда я использую его с помощью DNS на https, он блокирует некоторые запросы и дает 502.

В настоящее время развернуты сервисы: 1. Tomcat 2. Solr 3. Mysql 4. Apache

Конфигурация системы

  • Оперативная память 8 ГБ
  • Подкачать 16 ГБ
  • Ядро 2

Активные пользователи в системе - 100+

для

Конфигурация АПАЧЕ /etc/httpd/conf/httpd.conf

<IfModule mpm_worker_module>
KeepAlive on
StartServers 5
MinSpareThreads          15
MaxSpareThreads         100
ServerLimit 10
MaxRequestWorkers 200
MaxRequestsPerChild 4000

</IfModule>

/ssl.conf

<Proxy *>
    Order deny,allow
        Allow from all
    </Proxy>
    ProxyRequests Off
    ProxyPreserveHost On
    ProxyPass /mdt http://13.2XX.XXX.XX:9090/appName retry=1 acquire=3000 timeout=600 Keepalive=On
    ProxyPassReverse /mdt http://13.2XX.XXX.XX:9090/appName
</VirtualHost>

Tomcat Config- /conf/server.xml

 <Connector port="9090" protocol="HTTP/1.1"
               connectionTimeout="120000"
               acceptCount="200"
               maxThreads="3200"
               minSpareThreads="80" 
               maxSpareThreads="160"
               compression="on"
               compressableMimeType="text/html,text/xml,text/plain"   
               redirectPort="8443"
/>

Также я заметил, что Apache не освобождает занятую память, что вызывает сбой сервера. Я должен отслеживать и перезапускать Apache, когда память достигает 90%.

Кто-нибудь может мне помочь !! Любая помощь будет оценена


person Akshay Chavan    schedule 02.08.2019    source источник
comment
Комиттер Tomcat здесь. Есть ли веская причина вообще использовать HTTPd? Tomcat отлично справится и с OpenSSL.   -  person Michael-O    schedule 06.08.2019
comment
@ Майкл-О Да. Я использую приложение для реагирования и веб-сайт WordPress, который также развернут на том же сервере.   -  person Akshay Chavan    schedule 06.08.2019


Ответы (1)


Я добавил ниже конфигурацию в виртуальном хосте apache, чтобы решить эту проблему.

< VirtualHost XXXX>
<Proxy *>
    Order deny,allow
        Allow from all
    </Proxy>
    ProxyRequests Off
    ProxyPreserveHost On
    ProxyPass /mdt http://13.2XX.XXX.XX:9090/appName retry=1 acquire=3000 timeout=600 Keepalive=On
    ProxyPassReverse /mdt http://13.2XX.XXX.XX:9090/appName

 SetEnv force-proxy-request-1.0 1
 SetEnv proxy-nokeepalive 1
</VirtualHost>
person Akshay Chavan    schedule 12.08.2019