如何重写目标以纠正haproxy-inress中的路径?

我尝试在k8s中使用haproxy作为负载平衡,并使用haproxy-inress作为入口控制器。

我的负载平衡配置:

frontend MyFrontend_80
    bind    *:80
    bind    *:443
    mode    tcp
    default_backend         TransparentBack_https

backend TransparentBack_https
        mode                            tcp
        balance roundrobin
        option ssl-hello-chk
        server                  MyWebServer1 10.5.5.53
        server                  MyWebServer2 10.5.5.54
        server                  MyWebServer3 10.5.5.55

入口文件:

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: li
  namespace: li
  annotations:
    # add an annotation indicating the issuer to use.
    cert-manager.io/cluster-issuer: "letsencrypt-staging"
    #haproxy.org/forwarded-for: true
    kubernetes.io/ingress.class: haproxy
    ingress.kubernetes.io/ssl-redirect: "true"
spec:
  rules:
  - host: a.b.c
    http:
      paths:
      - path: /storage
        backend:
          serviceName: li-frontend
          servicePort: 80
  tls:
  - hosts:
    - a.b.c
    secretName: longhorn-ui-tls

li-frontend是仪表板ui服务。

当我在入口中将path字段设置为空白时,一切正常。路径字段设置为/ storage或任何非空白值时,页面不正常。

我发现某些链接位置不正确,例如

requst             correct value
/main.js           /storage/main.js

我在nginx-ingress中发现了这个

#nginx.ingress.kubernetes.io/configuration-snippet: |
#rewrite ^/main(.*)$ /storage/main$1 redirect;

haproxy-inress具有相同的功能吗? 我尝试了这些,但没有效果:

ingress.kubernetes.io/app-root: /storage
ingress.kubernetes.io/rewrite-target: /storage

此外,我在nginx-ingress中使用了rewrite,但是在websocket上不起作用。

对不起,我的泳池英语。

iCMS 回答:如何重写目标以纠正haproxy-inress中的路径?

对于HAProxy:

您必须使用haproxy注释:

gamma

参考:=> https://www.haproxy.com/documentation/kubernetes/1.4.5/configuration/ingress/

本文链接:https://www.f2er.com/2248770.html

大家都在问