【发布时间】:2019-11-04 01:35:09
【问题描述】:
我有一个在 K8s 中运行的应用程序。它前面有 3 个微服务和 nginx。 每个重定向首先通过 nginx 并按指定进行代理。 我的烧瓶应用程序在没有端口号的情况下重定向问题。我通过 minikube 在本地运行 k8s。每当我重定向到另一个页面时,url 不包含端口号,这会引发错误。
if usernamedata == None:
print("Could not log in")
else:
if passworddata == password:
print("Logged in")
return redirect("/user/{0}".format(username))
Nginx 是唯一暴露的服务,它的 url 是
http://192.168.99.107:31699
通过我在烧瓶中的重定向,我被重定向到http://192.168.99.107/user/David,这使我连接被拒绝。
如果我添加端口号并将其设为http://192.168.99.107:31699/user/David,它可以正常工作。
重定向时是否需要指定端口号?如果服务关闭并重新创建怎么办?
另外,这是我对 nginx 的服务定义:
kind: Service
apiVersion: v1
metadata:
name: nginx
labels:
svc: nginx
spec:
selector:
app: nginx-app
type: LoadBalancer
ports:
- port: 80
如何在烧瓶应用程序中进行重定向?
【问题讨论】:
-
您是否在 minikube 中正确设置了负载均衡器?
$ minikube service nginx --url返回什么? -
它返回
http://192.168.99.107:31699 -
您的高端口号是由 Kubernetes 动态(随机)设置的,因为您没有明确指定它。有关如何设置,请参阅下面的答案。
标签: nginx flask kubernetes