Proxy-Timeout mit ReWriteRule
Nov 16 2020
Es gibt keine Möglichkeit, das Timeout beim Proxy mithilfe von ReWriteRule (mod_rewrite) mit Apache 2.4 zu steuern.
<VirtualHost "*:443">
ServerName xxxx
Use ssl
RewriteEngine On
RewriteRule (.*/wms|/openlayers3/.*) http://localhost:8080$1 [P,L]
RewriteRule .* [F]
</VirtualHost>
Ich habe es erfolglos versucht:
Timeout 400ProxyTimeout 400- ProxySet
<Proxy "http://localhost:8080/">
ProxySet connectiontimeout=100 timeout=400
</Proxy>
ProxyPass "/" "http://localhost:8080" connectiontimeout=100 timeout=400
Das Timeout beträgt immer 1 Minute, egal welche der oben genannten Anweisungen ich verwende.
Antworten
4 ximaera Nov 19 2020 at 12:52
Dieses Zeitlimit kann nur global gesteuert werden . Ändern Sie die globale TimeoutEinstellung in httpd.confIhren bevorzugten Wert:
#
# Timeout: The number of seconds before receives and sends time out.
#
Timeout 400
Ein besserer Weg, dies zu tun, wäre wahrscheinlich die Verwendung von nginx:
server {
listen 443;
server_name xxxx;
# ... ssl setup ...
location ~* /wms$ {
proxy_pass http://localhost:8080;
proxy_read_timeout 400;
}
location /openlayers3/ {
proxy_pass http://localhost:8080;
proxy_read_timeout 400;
}
location / {
return 403;
}
}
Zusätzliche Links zur Nginx-Dokumentation, damit Sie verstehen, was in diesem Snippet vor sich geht:
- location und wie reguläre Ausdrücke in Nginx funktionieren
- proxy_pass
- proxy_read_timeout
- Konvertieren von Umschreiberegeln von Apache nach Nginx
Für die in meinem Snippet fehlende SSL-Konfiguration lesen Sie bitte auch die Dokumentation .