2015-04-19 8 views
6

ich eine einfache Bedingung in meinem HAProxy config (habe ich versucht, dies für Frontend und Backend):Header Antwort für bestimmte URLs mit HAProxy Hinzufügen

acl no_index_url path_end .pdf .doc .xls .docx .xlsx 
rspadd X-Robots-Tag:\ noindex if no_index_url 

Es sollte der Nein-Roboter hinzufügen header auf Inhalte, die nicht indiziert werden sollten. Aber es gibt mir diese WARNING wenn die Config-Analyse:

acl 'no_index_url' will never match because it only involves keywords 
    that are incompatible with 'backend http-response header rule' 

und

acl 'no_index_url' will never match because it only involves keywords 
    that are incompatible with 'frontend http-response header rule' 

Nach documentation, rspadd kann sowohl Frontend und Backend verwendet werden. Die path_end wird in Beispielen innerhalb Frontend verwendet. Warum bekomme ich diesen Fehler und was bedeutet das?

Antwort

12

Ab HAProxy 1.6 Sie nicht in der Lage sein, nur die Fehlermeldung zu ignorieren. Um diese Arbeits die temporäre Variable Funktion verwenden:

frontend main 
    http-request set-var(txn.path) path 

backend local 
    http-response set-header X-Robots-Tag noindex if { var(txn.path) -m end .pdf .doc } 
+1

Du hast meinen Tag gerettet :) – Yajo

1

Offenbar auch mit der Warnung, mit den acl im Frontend funktioniert völlig in Ordnung. Alle Ressourcen mit .pdf, .doc usw. erhalten die richtige X-Robots-Tag.

Mit anderen Worten, diese WARNING ist irreführend und in Wirklichkeit passt die aclentspricht.

+0

einfach eine Anmerkung für jedermann über die kommenden, in 1.6.2 hat es den Header trotz der Warnung hinzufügen, sondern auch fügt sie jede Antwort nicht die Regel übereinstimmen, damit ich glaube, es wird tatsächlich ignoriert. Das war für mich sowieso der Fall, ich benutzte ein "wenn", wenn das einen Unterschied macht. Die akzeptierte Antwort war für mich so, dass versuchen. – James

Verwandte Themen