問(wèn)題場(chǎng)景:當(dāng)外部服務(wù)不登錄淹禾,直接訪問(wèn)我們網(wǎng)站此時(shí)訪問(wèn)有post、get方式,兩種方式的不同解決方式摹恨。
外網(wǎng)get方式:
? ? ? ? ?get訪問(wèn)nginx,nginx攔截? ?=>? ? get方式地址直接window['location']['search']中直接通過(guò)Base64解析? ?=>? 前端展示? ?=>? ?解析之后通過(guò)post提交后臺(tái)。
外網(wǎng)通信非要用post請(qǐng)求方式:(這是屬于有病型):
? ? ? ? post訪問(wèn)nginx靜態(tài)資源代理出現(xiàn)問(wèn)題娶视,nginx? ===>>>>>504錯(cuò)誤晒哄,意思nginx獲取不到其post請(qǐng)求方式。
? ? ? ? ?解決方式:
? ? ? ? 1肪获、post訪問(wèn)nginx寝凌、nginx 不做攔截? =>? ?后端直接拿到數(shù)據(jù)做重定向? => 定向到訪問(wèn)頁(yè)面。(但是這種post方式往往字符過(guò)長(zhǎng)孝赫、超過(guò)2083字符较木,地址欄IE不兼容)
? ? ? ? 2、后端拿到數(shù)據(jù)后直接存儲(chǔ)到session中青柄,session存儲(chǔ)也面臨著一個(gè)問(wèn)題(f5負(fù)載均衡問(wèn)題伐债,當(dāng)存儲(chǔ)的值在服務(wù)器1上,返回后訪問(wèn)服務(wù)器2致开,此時(shí)數(shù)據(jù)拿不到)
? ? ? ? 3峰锁、后端拿到數(shù)據(jù)后直接存儲(chǔ)到redis? =>? 后端存儲(chǔ)上沒(méi)問(wèn)題但是面臨一個(gè)問(wèn)題(前端再次提交時(shí),不能確定誰(shuí)存的redis双戳,所以后端生成id,前端直接提交此id,這樣查一個(gè)表祖今,可以查到)
? ? ? ? 綜合上述:
? ? ? ? 外面地址? ?=>? ?nginx? 不做攔截? ?=>? ? 訪問(wèn)后端,后臺(tái)存儲(chǔ)到redis中生成id? =>? 拼接到路徑上? => 后端做重定向? =>? ?前端拿到訪問(wèn)地址? =>? 傳入id后端通過(guò)post提交,后端base64解析返回前端數(shù)據(jù)千诬。
? ? ? ? ? ?此時(shí)例子知識(shí)存儲(chǔ)自己的遇到問(wèn)題新的耍目,記錄今天的問(wèn)題!P彀蟆邪驮!