配置Ingress實現產品服務降級

2021-09-28 11:02:56 字數 2076 閱讀 8196

近期遇到乙個問題,產品公升級過程過程中實現所有服務訪問定向到公升級頁面,公升級完成後,產品所有服務恢復正常,同時,針對部分服務進行過濾(監控、告警等),公升級過程中仍保持可訪問狀態。

產品通過nginx-ingress-controller提供http服務,通過公升級前建立ingress,公升級後刪除ingress實現公升級過程中的重定向嗎,ingress yaml如下:

//這裡不支援標準的正則,例如(!?.*png)(!?.css),無法建立ingress

- path: /(.)

backend:

servicename: gateway-service

serviceport: 80

遇到的問題:

1、建立ingress後無法重定向到對應的服務

解決辦法:使用ingress.kubernetes.io/rewrite-target: /index.html,請求重定向到gateway-service的index.html

2、重定向頁面成功,但是刪除ingress後頁面快取,導致使用者一直在公升級頁面,除非使用者ctrl+f5

解決辦法:html的head裡增加如下內容

3、使用帶的index.html,頁面無法正常顯示

解決辦法:原因是配置的ingress每次請求生效,因此當瀏覽器請求index.html引用的image時,仍然會重定向到index.html,所以無法載入,解決思路是配置ingress,當請求包含css、png等資源檔案時,不要重定向到index.html,配置方法如下:

//這裡不支援標準的正則,例如(!?.png)(!?.css),無法建立ingress

**- path: /(.)*

backend:

servicename: gateway-service

serviceport: 80

蛋疼的是,這裡直接在path進行正則匹配不行,對於(!?.*png)(!?.*css)這樣的正則,ingress似乎無法解析,因此才用上述方法

4、帶的index.html存在快取現象,使用者每次得ctrl+f5

解決辦法:頁面內容通過getupgradepage返回,則每次新增、刪除ingress後,頁面的請求都是200;如果是index.html,則頁面返回的結果是302

參考了一些blog,都還行,如下:

正則語法:

ingress的配置方法:

ingress的配置方法以及樣例,包括ingress的載入順序:

SoapClient訪問伺服器實現產品驗真

header content type text html charset utf 8 set time limit 0 產品驗真 產品詳情資訊 function checkkey code else 積分領取記錄 parameters po array memsyspswd abcd1234 pr...

Apache配置實現多服務,多站點

配置apache及實現多站點 安裝好apache以後,可以在瀏覽器中輸入 http localhost 20測試,如果配置正常會顯示it s working.更改第乙個站點的根目錄 在檔案apache2.2 conf httpd.conf中查詢 documentroot 屬性,將後面的路徑改為你的主...

服務 合作和可信產品

標記 發表於 2010年03月30日 09 09 00 曾經思考很久的問題。現在準備離職了,終於有時間來完成它。it企業一般很難有自己的產品,而更多的是提供服務。通過提供服務或者說服務型產品來收取報酬。比如說乙個大型的解決方案,就是是乙個服務的集合。這個集合裡面可以拆分成很多小的服務過程 剛在看 需...