问题描述
使用rancher将后端服务部署在k8s上,前端去访问该服务却报错nginx413请求体过长,这个接口是用来上传文件的,但我一开始根本不知道这个Nginx在哪里部署,在哪使用。刚开始还以为是业务系统后端配置有误,但改了之后无果。
直到我打开了rancher的集群下对应的sysytem命名空间,看到了nginx-ingress这个pod,才找到了解决问题的途径。
解决方式
找到该服务对应集群的system命名空间,找到nginx-ingress结点,修改nginx.cnof配置文件,并在容器内部重启该nginx。
解决步骤
-
找到服务对应集群的system命名空间
-
找到Nginx-ingress-controller
-
执行命令行
-
找到配置文件
-
修改配置(注意找到对应服务的配置)
-
重启nginx
## 备注
nginx ingress controller 程序已经将ingress定义的路由规则转化为相应的nginx配置文件,因此我们访问nginx ingress controller才能实现相应的路由功能。从上面的nginx配置文件也可看出, nginx ingress 控制器并非直接将请求转发给相应服务,而是通过http请求头部信息确定客户端尝试访问哪个服务,通过与该服务关联的Endpoint对象查看pod IP,并将客户端的请求转发给其中的一个pod。
(2022.03.25于庐州)