我正在关注这个网站,用Nginx Ingress开发一个API。当我使用curl命令时,它有效!
curl -v -k -H "Host: myServiceA.foo.org" http:<IP_ADDRESS_INGRESS_NGINX>:80
现在我想使用像Chrome或Firefox这样的浏览器,但我知道http:<IP_ADDRESS_INGRESS_NGINX>:80
在没有标题的情况下是不起作用的,所以我找不到任何方法。
你知道怎么做吗?
问候
它不起作用,因为您已经在ingress yaml中配置了host
字段。
使用你发布的Nginx文档中的相同yaml:
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: ingress-myServiceA
annotations:
# use the shared ingress-nginx
kubernetes.io/ingress.class: "nginx"
spec:
rules:
- host: myServiceA.foo.org <== HERE
http:
paths:
- path: /
backend:
serviceName: myServiceA
servicePort: 80
只有当请求包含主机myServiceA.foo.org
时,入口才会接受连接并将请求转发到您的服务。你可以通过编辑机器e的/etc/hosts
来测试它,指向nginx入口ip:
文件/etc/hosts
<INGRESS_IP> myServiceA.foo.org
或者另一个选项是删除字段host
,这样ingress将接受来自Nginx ingress ip的请求,比如yaml:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: example-ingress
spec:
rules:
- http:
paths:
- path: /
backend:
serviceName: echo-svc
servicePort: 80