Тайм-ауты обратного прокси-сервера apache ровно через 60 секунд - PullRequest
0 голосов
/ 09 января 2019

У меня есть прокси-сервер Apache Reverse, который передает запрос на мой внутренний сервер Apache. Я использую Apache версии 2.4 на платформе Linux.

Я сталкивался со страницей тайм-аута и ошибкой HTTP 504 всякий раз, когда внутренний сервер Apache отнимает более 60 секунд (страница PHP ожидает результатов запроса Mysql на внутреннем сервере Apache)

Apache Время ожидания по умолчанию установлено на 300 секунд.

Эта проблема возникает только при доступе к веб-сайту через обратный прокси-сервер apache. Хорошо работает при использовании внутреннего IP.

Я попытался установить следующие параметры для прокси-сервера, но безуспешно.

ProxyPass / http://internal-ip:8080/ retry=1 acquire=3000 timeout=600 Keepalive=On

Я также пытался ProxyPass на несуществующий IP, который также показывает 504 HTTP ERROR через 60 секунд

Пожалуйста, помогите мне разобраться в этом вопросе.

<VirtualHost *:80>
 ServerName mywebsite.example.com
 ServerAlias www.mywebsite.example.com
 ProxyPreserveHost On
 DocumentRoot /var/www/html
        ErrorLog ${APACHE_LOG_DIR}/mywebsite.example.com-error.log
        CustomLog ${APACHE_LOG_DIR}/mywebsite.example.com-access.log combined

 RewriteCond %{REQUEST_METHOD} !^(GET|POST)$
 RewriteRule .* - [R=405,L]
 ProxyPass /.static-pages !
 ProxyPass / http://<Internal Apache Server IP>/
 ProxyPassReverse / http://<Internal Apache Server IP>/
</VirtualHost>

1 Ответ

0 голосов
/ 21 января 2019

У меня была точно такая же проблема, и я решил ее так:

ProxyRequests off
    Timeout 600
    ProxyTimeout 600
    <Proxy balancer://Mycluster>
        BalancerMember http://url:80
        ProxySet lbmethod=byrequests timeout=600
    </Proxy>
    ProxyPass / balancer://Mycluster/ timeout=600
...