
Ich verwende Apache 2.2.4 als Reverse-Proxy-Server in meiner DMZ. Der Proxy Balancer scheint einwandfrei zu funktionieren, wenn die beiden BalancerMember-Server aktiv sind. Wenn ich jedoch einen herunterfahre, dauert es bei jedem Laden einer Seite etwa 30 bis 45 Sekunden, bis irgendetwas auf meiner Site geladen wird. Hier ist meine Konfiguration:
ServerName mywebsite.com
ProxyRequests Off
<Proxy *>
Order deny, allow
Allow from all
</Proxy>
<Proxy balancer://mycluster>
BalancerMember http://10.10.10.10:80/outside loadfactor=1 retry=60
BalancerMember http://10.10.10.11:80/outside loadfactor=1 retry=60
</Proxy>
ProxyPass /outside balancer://mycluster/
ProxyPassReverse /outside balancer://mycluster/
ProxyPass /balancer-manager !
<Location /balancer-manager>
SetHandler balancer-manager
</Location>
Der Server fungiert als Reverse-Proxy für dahinterliegende REST-Dienste. Wenn ich die Webanwendung lade, ruft sie die REST-Dienste mehrmals auf. Ich weiß also nicht, ob das auch die Verlangsamung verursachen könnte, da der Proxy mit vielen Anfragen gleichzeitig konfrontiert wird.
Antwort1
Stellen Sie a ProxyTimeout
auf nur ein paar Sekunden ein. Was passiert, ist, dass es lange Zeit versucht, Verbindungen zum ausgefallenen Backend herzustellen, ohne dass eine Zeitüberschreitung auftritt.
Wenn Sie etwas wie einstellen, ProxyTimeout 3
wird die Verbindung schneller unterbrochen. Ihre retry=60
Einstellung führt dann dazu, dass der ausgefallene Server in der nächsten Minute nicht mehr verwendet wird.