首页 > 解决方案 > 不能将 curl 与带有 GKE Ingress 的 Host 标头一起使用

问题描述

我在 GKE 集群上部署了一个网站,该网站发布在一个域example.com上,并暴露在互联网上,例如带有 IP 的入口对象1.1.1.1
我可以example.com毫无问题地浏览,但我希望在发出此命令时也能看到我的网站:
curl -verbose --header 'Host: example.com' 1.1.1.1
但是,我得到的是 Google 的 404 页面。
这是为什么?
没有 Cloud Armor 或任何类型的防火墙。
入口配置如下:

kubectl describe ingresses.extensions wordpress-ingress -n examplens
Name:             wordpress-ingress
Namespace:        examplens
Address:          1.1.1.1
Default backend:  web-backend:80 (10.1.2.3:8080)
Rules:
  Host                   Path  Backends
  ----                   ----  --------
  example.com        
                         /*   wordpress-proxy:8081 (<none>)
Annotations:
  ingress.kubernetes.io/target-proxy:     k8s-tp-examplens-examplens-wordpress-ingress--0954ac07ad1bc6
  ingress.kubernetes.io/url-map:          k8s-um-examplens-examplens-wordpress-ingress--0954ac07ad1bc6
  ingress.kubernetes.io/backends:         {"k8s-be-31096--57aec84fb5d3ea3d":"HEALTHY","k8s-be-31366--57aec84fb5d3ea3d":"HEALTHY","k8s-be-31651--57aec84fb5d3ea3d":"HEALTHY","k8s-be-31864--57aec84fb5d3ea3d":"HEALTHY"}
  ingress.kubernetes.io/forwarding-rule:  k8s-fw-examplens-examplens-wordpress-ingress--ef63350eae86dd
Events:           <none>

标签: google-kubernetes-enginekubernetes-ingress

解决方案


山姆,

看起来问题是在 URL 映射中定义到您的后端的路径。尝试改用以下命令:

curl -verbose --header 'Host: example.com' http://1.1.1.1/

推荐阅读