Nginx 为k8s入口上的特定文件类型添加头
我正在k8s上运行nginx入口和入口控制器。需要为特定文件类型(例如)添加额外的头。通常的方法(不在k8s上时)是利用Nginx 为k8s入口上的特定文件类型添加头,nginx,nginx-ingress,Nginx,Nginx Ingress,我正在k8s上运行nginx入口和入口控制器。需要为特定文件类型(例如)添加额外的头。通常的方法(不在k8s上时)是利用location指令。但是,在k8s上运行以下操作会添加额外的位置,而不带任何参数,这在某种程度上是意料之中的,但会导致ingress controller尝试从其本地文件系统而不是远程pod为上游提供服务: 守则: nginx.ingress.kubernetes.io/server-snippet: | location ~* \.(pdf)$ {
location
指令。但是,在k8s上运行以下操作会添加额外的位置,而不带任何参数,这在某种程度上是意料之中的,但会导致ingress controller尝试从其本地文件系统而不是远程pod为上游提供服务:
守则:
nginx.ingress.kubernetes.io/server-snippet: |
location ~* \.(pdf)$ {
add_header a "b";
}
结果是:
location ~* \.(pdf)$ {
add_header a "b";
}
location / {
# some stuff
}
我想在add_header
指令下面添加一个额外的重写,但这会导致无限重定向循环
所以让我们后退一步。根据文档,可以在以下上下文中添加标题:http、服务器、位置(如果在位置中)
:
- 前两个是不可能的,因为我只需要为特定的文件类型添加头,而不需要全局添加头
-如上所述位置
- 嵌套的
-在k8s上不起作用李>位置
?这是一种非常不完美的方法,尽管尝试过,但迄今为止对我不起作用-部署后,ingress controller的nginx.conf中没有出现合适的代码(不确定原因)如果
nginx.ingres.kubernetes.io/配置代码段
进行配置时,如果
正确添加到位置
上下文中。我之前尝试的是使用nginx.ingres.kubernetes.io/location snippet
,但没有产生任何结果。无论如何,我已经实现了一个工作配置。这是否是一个最佳方案的问题仍然悬而未决