2016-08-08 39 views
2

Ich versuche, Haproxy an einen neuen Speicherort umleiten, wenn es eine 404-Antwort von einem Back-End-Server erhält. Wenn es keinen 404 erhält, möchte ich, dass es normal reagiert.Haproxy Redirect basierend auf Antwort Statuscode

Das machte Sinn für mich, aber scheint nicht zu funktionieren:

frontend front 
    option httplog 
    bind *:8080 
    default_backend    app 

backend app 
    balance  roundrobin 
    acl document_request path_beg -i /documents 
    acl not_there status 404 
    http-request redirect location http://newlocation/%[path] if document_request not_there 
    server webserver1 10.10.10.10:8080 check 

ich die folgende Warnung erhalten:

acl ‚not_there‘ wird nie passen, weil es nur Schlüsselwörter beinhaltet, die nicht kompatibel sind mit 'Backend http-Request-Header-Regel'

ich bin mit Version 1.5.14 auf Centos 7.

Alle Ideen, wie diese Arbeit zu machen? Ist es möglich zu tun, was ich versuche zu tun?

Jede Hilfe wäre sehr willkommen.

Danke,

AL

Antwort

1

http-request redirect leitet die Anforderung (optional) auf der Grundlage einer Bedingung, die die Anforderung prüft.

status kann nur die Antwort überprüfen. 'Inkompatibel mit HTTP-Request Header-Regel' bedeutet status ist nur kompatibel mit http-Response-Regeln.

Zu dem Zeitpunkt, an dem Sie den Statuscode erhalten haben, können Sie nur die Antwort umschreiben. Versuchen Sie, den Standort und Status mit http-response set-header zu bearbeiten. set-status.

Seit Version 1.6 können Sie http-response redirect verwenden.