問題描述
在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