如何配置路由器的ha-proxy,以便对传入呼叫的标头进行选择,并可能添加其他传出标头...
我只想为来自特定主机名或具有特定标头的呼叫附加新标头
答案 0 :(得分:2)
您可以通过Obtaining the Router Configuration Template
获取默认的haproxy模板。# oc get po
NAME READY STATUS RESTARTS AGE
router-2-40fc3 1/1 Running 0 11d
# oc rsh router-2-40fc3 cat haproxy-config.template > haproxy-config.template
,然后您可以自定义模板,例如通过haproxy配置添加其他标题。有关路由器模板的详细信息,请参见Go Template Actions;有关haproxy配置的详细信息,请参见http-request set-header。
# vim haproxy-config.template
自定义后,您应通过Using a ConfigMap to Replace the Router Configuration Template步骤将模板替换为当前的模板。
$ oc create configmap customrouter --from-file=haproxy-config.template
$ oc set volume dc/router --add --overwrite \
--name=config-volume \
--mount-path=/var/lib/haproxy/conf/custom \
--source='{"configMap": { "name": "customrouter"}}'
$ oc set env dc/router \
TEMPLATE_FILE=/var/lib/haproxy/conf/custom/haproxy-config.template
希望对您有帮助。
答案 1 :(得分:0)
我的配置文件就是这样...假设我们要添加带有值的新标题...
所以我只需要添加以下行:http-request add-header new_header_name:value?
但是如果我只想为输入中的特定主机名添加新标题,该怎么办?
*前端公共
绑定:80 模式http tcp请求检查延迟5s tcp-request内容是否接受HTTP monitor-uri / _______ internal_router_healthz #剥离代理标头以防止HTTpoxy(https://httpoxy.org/) http-请求del-header代理 #DNS标签不区分大小写(RFC 4343),我们需要将主机名转换为小写 #匹配之前,否则任何包含大写字符的请求都将不匹配。 http-request set-header主机%[req.hdr(Host),lower] #检查是否需要使用https重定向/强制执行。 acl secure_redirect基础,map_reg(/var/lib/haproxy/conf/os_route_http_redirect.map)-m找到 重定向方案https(如果secure_redirect) use_backend%[base,map_reg(/var/lib/haproxy/conf/os_http_be.map)] default_backend openshift_default *