2017-04-14 4 views
2

私は、URL非正規化のためにwww以外のすべてのトラフィックをwwwサブドメインにリダイレクトしようとしているKubernetes Ingressリソースを持っています。したがって、example.comのすべてのトラフィックをwww.example.comに書き換える必要があります。私はこれを達成するためにIngress rewrite exampleを正しく使う方法を理解できないようです。Kubernetes Ingress - www以外のすべてのトラフィックをwwwサブドメインに書き換えるにはどうすればよいですか?

マイイングレス(JSON形式):

{ 
    "apiVersion": "extensions/v1beta1", 
    "kind": "Ingress", 
    "metadata": { 
    "name": "example-staging", 
    "annotations": { 
     "ingress.kubernetes.io/rewrite-target": "/", 
     "kubernetes.io/ingress.global-static-ip-name": "example-static-ip" 
    } 
    }, 
    "spec": { 
    "rules": [ 
     { 
     "host": "www.example.nl", 
     "http": { 
      "paths": [ 
      { 
       "path": "/", 
       "backend": { 
       "serviceName": "example-service", 
       "servicePort": 80 
       } 
      } 
      ] 
     } 
     } 
    ] 
    } 
} 

答えて

2

ingress.kubernetes.io/rewrite-targetはホスト、リクエストURIを書き換えていないために使用されています。

あなたのリンクからは、nginx入力コントローラを使用しているようです。あなたは301

{ 
    "apiVersion": "extensions/v1beta1", 
    "kind": "Ingress", 
    "metadata": { 
    "name": "example-staging-wwwredir", 
    "annotations": { 
     "ingress.kubernetes.io/rewrite-target": "/", 
     "ingress.kubernetes.io/configuration-snippet": "return 301 $scheme://www.example.nl$request_uri;" 
    } 
    }, 
    "spec": { 
    "rules": [ 
     { 
     "host": "example.nl", 
     "http": { 
      "paths": [ 
      { 
       "path": "/", 
       "backend": { 
       "serviceName": "example-service", 
       "servicePort": 80 
       } 
      } 
      ] 
     } 
     } 
    ] 
    } 
} 
を追加する ingress.kubernetes.io/configuration-snippet注釈を使用する example.nlための第二 Ingressを追加することで、必要な効果を得ることができます
関連する問題