繁体   English   中英

kubernetes:尽管配置了nginx,ELB仍未重定向到https

[英]kubernetes: ELB not redirecting to https despite nginx configuration

我在aws上的k8s部署中有一个LoadBalancer服务(通过kops )。

服务定义如下:

apiVersion: v1
kind: Service
metadata:
  name: ui
  annotations:
    service.beta.kubernetes.io/aws-load-balancer-ssl-cert: <certificate_id>
    service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "443"
spec:
  ports:
  - name: http
    port: 80
    targetPort: ui-port
    protocol: TCP
  - name: https
    port: 443
    targetPort: ui-port
    protocol: TCP
  selector:
    els-pod: ui
  type: LoadBalancer

这是各自的部署:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: ui-deployment
spec:
  replicas: 1
  template:
    metadata:
      labels:
        els-pod: ui
    spec:
      containers:
      - image: <my_ecr_registry>/<my_image>:latest
        name: ui
        ports:
        - name: ui-port
          containerPort: 80
      restartPolicy: Always

我知道<my_image>暴露了端口80

我还为部署的ELB分配了别名。 my-k8s.mydomain.org

所述ui荚包括nginx图像,其中两个server上下文和/位置块,具有以下指令:

  if ($http_x_forwarded_proto != 'https') {
        rewrite ^ https://$host$request_uri? permanent;
    }

但是,当通过http访问服务(即,作为别名分配给ELB的域名)时,我不会重定向到https

我遇到了相反的问题,并通过添加nginx.ingress.kubernetes.io/ssl-redirect解决了它:“ false”。

也许为您配置:

metadata:
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/ssl-redirect: "true"

可以解决您的问题?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM