Notes11web中的k-v存储们,nginx反向代理与负载均衡
Posted 码农编程录
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Notes11web中的k-v存储们,nginx反向代理与负载均衡相关的知识,希望对你有一定的参考价值。
1.web中的k-v存储们
同一域名下可以互相调用,F12 - Application - 左侧如下一条cookies,在console中输入document.cookie查看数据信息,document.cookie=“kkk=vvv"设置cookie,点击如下http://www.baidu…可查看到kkk vvv信息。
同域名可用,打开另一个标签,同样百度页面,F12 - Application - 左侧Cookies中可看到"kkk=vvv”,注意不能跨浏览器。Cookies既然有k v的作用了,那客户端里为什么还要有local storage和session storage呢?
因为每次进行请求时,如下请求百度首页,可以看到request header中会携带cookies信息,每次请求时都会将全量的cookies信息作为请求的一部分进行上传,这样cookies存储的数据不能太大,太大的话每次进行提交浪费带宽。
所以在html5中提出新的概念用localstorage进行存储,localstorage和cookies用法一致,console中输入localStorage.setItem(“kk”,“vv”),同理在Application中点开如上Local Storage中http://www.baidu…查看到kk vv信息。
console中输入sessionStorage.setItem(“k”,“v”),同理在Application中点开Session Storage中http://www.baidu…查看到k v信息,sessionStorage.getItem(“k”)。关闭网页后,sessionStorage被自动删除,且不支持跨标签页,当然跨浏览器更不支持。
如下设置session。
如下在另一个页面读取session。
session存在服务端能唯一辨识客户端,如下打开新的无痕(inprivate)窗口(相当于新的浏览器),无法读到。新浏览器必须先访问localhost。
php版本的session运行的原理是什么?通过cookie记录sessionid如下,服务端存储结构:phpsessid-[k-v],每个浏览器分到一个不同id,因而各个数据是独立存储的。同一个浏览器下打开不同 标签共享cookie,因而共享了session。
存储在服务端的session有什么好处呢?最大好处是这个数据在客户端没有任何信息,只有它自己的标识id,这个id是没有任何用的,也是随时变化的,客户端不能通过脚本修改服务端的session,前面的localstorage这些都可以通过setItem的js脚本修改增加,session无法修改,安全性更高,适合用户敏感型数据的记录。客户端的这三种适合页面端的常用数据的记录。
2.nginx反向代理与负载均衡
用nginx做反向代理,将请求分发到公司内部的多台服务器上。原生nginx没有集成很多插件,使用不方便。推荐使用openresty(在nginx基础上集成了很多插件),官网下载openresty后解压后进一级目录输入nginx.exe回车运行服务端,浏览器输入localhost默认80端口 / 路径
。怎么学习nginx反向代理与负载均衡功能设置呢?修改conf目录下nginx.conf文件,删除注释。50x.html是错误页面,暂时不用。
location / 默认匹配所有请求,相当于第四优先级。
如下最强级别=。
如下优先级次高,^~
以什么开头。
如下第三优先级,正则表达式~
。\\w
匹配数字、字母、下划线三种类型。
如下同优先级的,按匹配程度较高的先匹配。
同优先级并且匹配程度相同的话,写在上面的优先执行,
如下是反向代理写法
如下是apach返回的Not Found返回的信息,/a路径没有,不是nginx返回的信息,因为已经把/a请求转到192.168…
如下其实转到了192…:80/a。
想要将上面/a转到80的/路径下,而不是/a路径下。
多两个/,省去/b。
下面是负载均衡:
两个ip+端口切换
以上是关于Notes11web中的k-v存储们,nginx反向代理与负载均衡的主要内容,如果未能解决你的问题,请参考以下文章
[Notes] 2020.6.16 每日一题 二叉树的序列化与反序列化