Nginx路由忽略路径规则之后的任何内容



我们正在使用kubernetes为formio设置nginx。我们需要.com/指向api服务器,需要.com/files/指向pdf服务器。以下是入口配置:

paths:
- backend:
serviceName: formio
servicePort: 80
path: /
- backend:
serviceName: formio-files
servicePort: 4005
path: /files/(.*)$

我们已经设置好了,我们的pdf存储在像/files/pdf/filename这样的路径中。问题是/files/之后的整个路径也被重定向到PDF服务器,而不是仅仅停在/files/

这是一个常见问题,由您设置的路径regex引起。首先,您需要清楚地了解它。无论您在/files/之后添加什么,路径regex/files/(.*)$都将匹配所有路径/files/...。因此,它使用路径/files/...重定向所有请求。如果您只想将PDF请求重定向到路径/files/pdf/...,则解决方案是将路径regex设置为/files/pdf/(.*)$

问题是我们使用了带有bash的azure cloud shell来应用它'kubectl应用-f'Bash将$1视为一个变量,而不是将其写入配置,因此重写目标不起作用。将配置保存为YAML,并应用它来解决问题。

感谢大家的帮助

相关内容

  • 没有找到相关文章

最新更新