2015-04-19 38 views
6

具体网址我在HAProxy的配置有一个简单的条件(我想这对于前端后端):添加标题,以响应与HAProxy的

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

它应该增加无漫游器标题到不应该编入索引的内容。

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

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

documentationrspadd既可前端后端使用:然而,它解析配置的时候给我这个WARNINGpath_end用于前端内的示例中。为什么我得到这个错误,这是什么意思?

回答

12

从HaProxy 1.6开始,您将无法忽略错误消息。为了得到这个工作使用临时变量功能:

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

你救了我的一天:) – Yajo

1

显然,即使发出警告,前端内的acl也可以很好地工作。所有与.pdf,.doc等资源都获得正确的X-Robots-Tag添加到他们。

换句话说,这WARNING是误导,并在现实中acl没有匹配。

+0

只是一个对任何人碰到这个未来的音符,在1.6.2尽管警告它确实增加了头,但也将其添加到任何响应不匹配的规则,所以我相信它实际上被忽略了。无论如何,对我来说就是这种情况,如果这有所作为,我会使用'除非'。接受的答案为我工作,所以试试。 – James