web-dev-qa-db-ja.com

nginx入力サブパスリダイレクト

すべての/ devopsがバックエンドのdevopsserviceにマッピングされた状態で、入力コントローラーと入力リソースが実行されています。 「 http:// hostname/devops 」をヒットしようとすると、(CSSとスタイルはありませんが)ハイパーリンクのあるページが表示されます。たとえば、それらの1つは「ログ」です。

「ログ」ハイパーリンクをクリックすると、 http:// hostname/logs にリダイレクトされますが、 http:// hostname/devops/logs である必要があります=。

私に何ができるか考えていますか?

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
 name: my-ingress
 namespace: ingress-nginx
 annotations:
   kubernetes.io/ingress.class: nginx
   nginx.ingress.kubernetes.io/rewrite-target: /
   nginx.ingress.kubernetes.io/add-base-url : "true"
spec:
 rules:
 - Host: master1.dev.local
   http:
     paths:
     - backend:
         serviceName: devops1
         servicePort: 10311
       path: /devops
6
user1722908

ブラウザから直接http://hostname/devops/logsにアクセスすると、確かに欲しいものが手に入ります。しかし、ホームページのハイパーリンクをクリックすると、http://hostname/logsのみを取得できますが、これは間違いなく失敗します。

そのため、イングレスyamlで/logsバックエンドを設定して処理する必要があり、nginx.ingress.kubernetes.io/configuration-snippetを設定して/logsが書き換えられないようにします:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
 name: my-ingress
 namespace: ingress-nginx
 annotations:
   kubernetes.io/ingress.class: nginx
   nginx.ingress.kubernetes.io/rewrite-target: /
   nginx.ingress.kubernetes.io/add-base-url : "true"
   nginx.ingress.kubernetes.io/configuration-snippet: |
     rewrite ^/logs /logs break;
spec:
 rules:
 - Host: master1.dev.local
   http:
     paths:
     - backend:
         serviceName: devops1
         servicePort: 10311
       path: /logs
     - backend:
         serviceName: devops1
         servicePort: 10311
       path: /devops
1
Kun Li

イングレスは何も配信していないようです/devops/*。別のパスを追加してみてください/devops/*同じバックエンド。基本的にこれ:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
 name: my-ingress
 namespace: ingress-nginx
 annotations:
   kubernetes.io/ingress.class: nginx
   nginx.ingress.kubernetes.io/rewrite-target: /
   nginx.ingress.kubernetes.io/add-base-url : "true"
spec:
 rules:
 - Host: master1.dev.local
   http:
     paths:
     - backend:
         serviceName: devops1
         servicePort: 10311
       path: /devops/*
     - backend:
         serviceName: devops1
         servicePort: 10311
       path: /devops

この記事の執筆時点では、この領域でまだ work が行われています。

0
Rico