我正在用nginx ingress运行k8s。它指向
https://www.example.com/app
在某个pod上,将“/应用程序”重写为“/”,应用程序侦听80并提供“/”:
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/rewrite-target: /
labels:
app: example
name: example
namespace: default
spec:
rules:
- host: www.example.com
http:
paths:
- backend:
serviceName: app
servicePort: 80
path: /app
- backend:
serviceName: app
servicePort: 80
path: /app/
tls:
- hosts:
- www.example.com
secretName: example-tls
如果我要
https://www.example.com/app
请求传递给pod,pod用另一个URL(例如/内容)响应,我的浏览器显示
https://www.example.com/content
-它是404,因为“/内容”没有进入规则。AFAIK nginx可以使用sub\u过滤器重写响应。另一种方法是使用一些可配置的路径前缀开发应用程序。我也可以使用base\u url,但只能与html一起使用。但有没有简单的方法来传递前缀作为返回,所以如果pod return“/content”nginx将其重写为
https://www.example.com/app/content
非常感谢。