Timeout proxy con ReWriteRule
Nov 16 2020
Non c'è modo di controllare il timeout durante il proxy tramite ReWriteRule (mod_rewrite) con Apache 2.4.
<VirtualHost "*:443">
ServerName xxxx
Use ssl
RewriteEngine On
RewriteRule (.*/wms|/openlayers3/.*) http://localhost:8080$1 [P,L]
RewriteRule .* [F]
</VirtualHost>
Ho provato senza successo:
Timeout 400ProxyTimeout 400- ProxySet
<Proxy "http://localhost:8080/">
ProxySet connectiontimeout=100 timeout=400
</Proxy>
ProxyPass "/" "http://localhost:8080" connectiontimeout=100 timeout=400
Il timeout è sempre di 1 minuto, indipendentemente dalle direttive precedenti che utilizzo.
Risposte
4 ximaera Nov 19 2020 at 12:52
Questo timeout può essere controllato solo a livello globale . Modifica l' Timeoutimpostazione globale nel httpd.conftuo valore preferito:
#
# Timeout: The number of seconds before receives and sends time out.
#
Timeout 400
Probabilmente un modo migliore per farlo sarebbe usare 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;
}
}
Collegamenti aggiuntivi alla documentazione di nginx in modo da capire cosa sta succedendo in questo frammento:
- location e come funzionano le espressioni regolari in nginx
- proxy_pass
- proxy_read_timeout
- Conversione di regole di riscrittura da Apache a Nginx
Per la configurazione SSL mancante nel mio frammento, leggi anche la documentazione .