问题场景:当外部服务不登录,直接访问我们网站此时访问有post、get方式,两种方式的不同解决方式。
外网get方式:
get访问nginx,nginx拦截 => get方式地址直接window['location']['search']中直接通过Base64解析 => 前端展示 => 解析之后通过post提交后台。
外网通信非要用post请求方式:(这是属于有病型):
post访问nginx静态资源代理出现问题,nginx ===>>>>>504错误,意思nginx获取不到其post请求方式。
解决方式:
1、post访问nginx、nginx 不做拦截 => 后端直接拿到数据做重定向 => 定向到访问页面。(但是这种post方式往往字符过长、超过2083字符,地址栏IE不兼容)
2、后端拿到数据后直接存储到session中,session存储也面临着一个问题(f5负载均衡问题,当存储的值在服务器1上,返回后访问服务器2,此时数据拿不到)
3、后端拿到数据后直接存储到redis => 后端存储上没问题但是面临一个问题(前端再次提交时,不能确定谁存的redis,所以后端生成id,前端直接提交此id,这样查一个表,可以查到)
综合上述:
外面地址 => nginx 不做拦截 => 访问后端,后台存储到redis中生成id => 拼接到路径上 => 后端做重定向 => 前端拿到访问地址 => 传入id后端通过post提交,后端base64解析返回前端数据。
此时例子知识存储自己的遇到问题新的,记录今天的问题!!!