ingress-nginx 1.8.0:仅重写首页至/pl且不影响静态资源方案咨询
解决Ingress-Nginx首页重定向不影响静态资源的问题
原配置里的rewrite-target: /pl是全局路径重写,所有请求(包括/_Resources/开头的静态资源)都会被强制加上/pl前缀,这才导致静态资源返回404。要解决这个问题,只需要针对根路径请求做定向,其他路径保持原样转发即可,具体配置如下:
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: annotations: # 自定义Nginx规则,仅处理根路径重定向,放行静态资源 nginx.ingress.kubernetes.io/configuration-snippet: | if ($request_uri = '/') { return 302 /pl; # 临时重定向,需要永久重定向就改成301 } # 匹配_Resources开头的静态资源请求,直接转发到后端,跳过重写 if ($request_uri ~* "^/_Resources/") { proxy_pass http://$upstream:$upstream_port; break; } labels: app.kubernetes.io/managed-by: Helm name: rewrite-ingress-config namespace: default spec: ingressClassName: ingress-nginx rules: - host: domain.com http: paths: - backend: service: name: neos-service port: number: 8080 path: / pathType: Prefix tls: - hosts: - domain.com secretName: domain-tls
配置说明
- 移除了原来的
app-root和rewrite-target注解,避免全局重写干扰所有请求 - 第一个
if块:只有当请求URI正好是根路径/时,才重定向到/pl,实现首页跳转 - 第二个
if块:匹配所有/_Resources/开头的静态资源请求,直接代理到后端服务,确保这些资源能正常被访问 - 302是临时重定向,适合需要随时切换首页路径的场景;如果是固定的首页地址,换成301永久重定向更利于SEO
内容的提问来源于stack exchange,提问作者theraven
相关产品推荐
相关产品推荐

