【发布时间】:2021-12-20 21:45:15
【问题描述】:
我有一个本地网站。 该网站是由 docker-compose 创建的,它正在侦听 localhost 端口 3000。
当我尝试时:
curl 127.0.0.1:3000
我可以看到响应。
我做了什么:
我从我的域提供商编辑了 DNS 以指向我的服务器,然后我更改了 nginx-ingress:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: virtual-host-ingress
namespace: ingress-basic
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/ssl-redirect: "true"
nginx.ingress.kubernetes.io/use-regex: "true"
cert-manager.io/cluster-issuer: "letsencrypt-pp"
spec:
tls:
- hosts:
- nextformulainvesting.com
secretName: ***
rules:
- host: "nextformulainvesting.com"
http:
paths:
- pathType: Prefix
path: "/"
backend:
service:
name: e-frontend-saleor
port:
number: 80
我创建了服务:
apiVersion: v1
kind: Service
metadata:
name: e-frontend-saleor
spec:
ports:
- protocol: TCP
port: 80
targetPort: 3000
但是无论有没有服务,我都会收到错误503 Service Temporarily Unavailable。
如何使用 nginx-ingress 指向我的本地 TCP 服务?
【问题讨论】:
-
您的网站正在监听 localhost:3000,然后您将 dns 指向您的服务器(我假设服务器的外部可访问 IP 地址)。我看到这里有点脱节。这个网站是公开的还是只在 localhost(又名 127.0.0.1)上监听?
-
我假设它已暴露,否则您将不会收到 503,这是来自 Web 服务器的有效响应。您在 Web 服务器的日志中看到任何内容吗?
-
所以问题是服务目前没有指向任何东西,对吧?由于服务没有选择任何东西,您需要手动创建一个端点。
-
服务器将 kubernetes 集群内的其他服务和网站暴露给互联网,因此配置良好。现在我在集群外部有一个服务,因为我没有 kubernetes 部署:我使用了 docker-compose,ancthe 网站正在监听 localhost:3000
-
端点不能环回