「NGINX Ingress Controller」- 修改默認重定向狀態碼 @20210129

問題描述

在NGINX Ingress Controller中,開啓強制SSL跳轉以後,當訪問HTTP時將被重定向到HTTPS地址。 nginx

可是在IE 8瀏覽器中沒法進行跳轉………… git

問題緣由

由於IE 8瀏覽器不支持308狀態碼。同時「Permanent redirect 308 not supported in IE11 #1825」指出IE 11瀏覽器也不支持308狀態碼。 github

當使用308狀態碼時,在重定向POST請求時能夠保留「有效載荷」(有效載荷,簡單理解成POST請求的數據便可)。 api

解決辦法

只能修改返回狀態碼。這須要修改Nginx的ConfigMap對象,添加http-redirect-code: "301"配置。 瀏覽器

配置文件結構大體以下: app

apiVersion: v1
kind: ConfigMap
metadata:
  labels:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx
  name: nginx-configuration
  namespace: ingress-nginx
data:
  http-redirect-code: "301"

參考文獻

WikiNotes/修改默認重定向狀態碼
Permanent redirect 308 not supported in IE11 #1825
Change default redirect to 301 to support old internet explorer versions #2002
Kubernetes Nginx Ingress HTTP to HTTPS redirect via 301 instead of 308?
NGINX Ingress Controller/ConfigMaps/http-redirect-code ide

相關文章
相關標籤/搜索