Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes入口未重定向到正确路径_Kubernetes_Kubernetes Ingress_Nginx Ingress - Fatal编程技术网

Kubernetes入口未重定向到正确路径

Kubernetes入口未重定向到正确路径,kubernetes,kubernetes-ingress,nginx-ingress,Kubernetes,Kubernetes Ingress,Nginx Ingress,我有一个Django应用程序,作为部署运行在Kubernetes集群内的Apache上。应用程序正在端口8080上运行,应用程序根目录为“/”。当有人输入/tascaty时,我希望我的入口重定向到我的应用程序,但当我在入口资源中以/tascaty的身份输入路径时,这不会发生。但当我设置路径时,它会工作。下面是我的应用程序的详细信息 应用程序的Apache配置文件: 听8080 WSGIDaemonProcess tascaty_dev python path=/usr/local/lib/pyt

我有一个Django应用程序,作为部署运行在Kubernetes集群内的Apache上。应用程序正在端口8080上运行,应用程序根目录为“/”。当有人输入/tascaty时,我希望我的入口重定向到我的应用程序,但当我在入口资源中以/tascaty的身份输入路径时,这不会发生。但当我设置路径时,它会工作。下面是我的应用程序的详细信息

应用程序的Apache配置文件:

听8080
WSGIDaemonProcess tascaty_dev python path=/usr/local/lib/python3.8/dist-packages
WSGIProcessGroup tascaty_dev
WSGIApplicationGroup%{GLOBAL}
WSGIScriptAlias//usr/local/lib/python3.8/dist-packages/tascaty_project/wsgi.py
要求所有授权
别名/static/usr/local/lib/python3.8/dist-packages/static
要求所有授权
应用程序部署:

apiVersion:apps/v1 种类:部署 元数据: 名称:tascatyk8s部署 名称空间:tascaty 规格: 副本:1份 选择器: 火柴标签: 组件:tascatyk8s 模板: 元数据: 标签: 组件:tascatyk8s 规格: 卷数: -名称:tascatyk8s mount persistentVolumeClaim: 索赔名称:tascatyk8s pvc 容器: -名称:tascatyk8s 图片:abdul8423/tascatyk8s:v3 端口: -集装箱港口:8080 体积数量: -mountPath:/usr/local/lib/python3.8/dist-packages/users/migrations 名称:tascatyk8s mount 子路径:用户 -挂载路径:/usr/local/lib/python3.8/dist-packages/tascaty/migrations 名称:tascatyk8s mount 子路径:塔斯卡蒂 -mountPath:/usr/local/lib/python3.8/dist-packages/leaves/migrations 名称:tascatyk8s mount 子路径:树叶 -mountPath:/usr/local/lib/python3.8/dist-packages/blog/migrations 名称:tascatyk8s mount 子路径:博客 环境: -姓名:TASCATY_主机 价值来源: configMapKeyRef: 名称:tascatyk8s部门配置图 关键字:TASCATY_主机 -名称:塔斯卡蒂港 价值来源: configMapKeyRef: 名称:tascatyk8s部门配置图 密钥:TASCATY_端口 -姓名:TASCATY_DB 价值来源: configMapKeyRef: 名称:tascatyk8s部门配置图 关键字:TASCATY_DB -姓名:TASCATY_用户 价值来源: configMapKeyRef: 名称:tascatyk8s部门配置图 关键字:TASCATY_用户 -名称:塔斯卡蒂沟 价值来源: secretKeyRef: 姓名:塔斯卡蒂秘密 密钥:MYSQL\u密码 节点选择器: 组成部分:塔斯卡蒂 应用程序服务

apiVersion:v1 种类:服务 元数据: 名称:tascatyk8s群集ip服务 名称空间:tascaty 规格: 类型:集群 选择器: 组件:tascatyk8s 端口: -端口:8080 目标港:8080 入口控制器的安装使用

kubectl应用-fhttps://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.34.1/deploy/static/provider/baremetal/deploy.yaml
入口资源:

apiVersion:networking.k8s.io/v1beta1 种类:入口 元数据: 名称:tascatyk8s部署入口 名称空间:tascaty 注释: kubernetes.io/ingres.class:nginx nginx.ingres.kubernetes.io/rewrite-target:/ 规格: 规则: -http: 路径: -路径:/tascaty 后端: 服务名称:tascatyk8s群集ip服务 服务端口:8080 当我尝试访问时,它会重定向到 但是我得到一个
404找不到

但是,当我用/而不是/tascaty替换入口资源内的路径时,它工作正常。

入口路径发生了什么情况
/tascaty
: 您的Apache/WSGI服务器正在执行重定向。重定向到
/
后,客户端返回入口,入口不知道如何处理,因此它将显示
404

入口路径发生了什么情况
/
: 您的Apache/WSGI服务器正在执行重定向。重定向到
/
后,客户端返回入口,入口知道如何处理
/
,一切都很好

因此,您的入口(运行nginx)和Apache都需要始终在同一条路径上达成一致。因此,您要么在入口上使用
/
,要么将Apache配置更改为也在
/tascaty
上服务,这样它就不会重定向到
/
,而是重定向到
/tascaty

后者的例子:

听8080
WSGIDaemonProcess tascaty_dev python path=/usr/local/lib/python3.8/dist-packages
WSGIProcessGroup tascaty_dev
WSGIApplicationGroup%{GLOBAL}
WSGIScriptAlias/tascaty/usr/local/lib/python3.8/dist-packages/tascaty_project/wsgi.py
要求所有授权
别名/tascaty/static/usr/local/lib/python3.8/dist-packages/static
要求所有授权
此外,您需要从入口清单中删除此项:

nginx.ingres.kubernetes.io/rewrite-target:/

✌️

感谢Rico,它在进行更改后工作正常,但页面显示不正确。如果您使用的是
/tascaty
,则可能需要在apache+ingress co中为
/tascaty/
/tascaty
添加节