Openshift上的自定义Ha-proxy

时间:2019-09-25 07:38:15

标签: openshift haproxy

如何配置路由器的ha-proxy,以便对传入呼叫的​​标头进行选择,并可能添加其他传出标头...

我只想为来自特定主机名或具有特定标头的呼叫附加新标头

2 个答案:

答案 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 *