当前位置: 首页 > news >正文

动态交互网站建设网站怎么做出来的

动态交互网站建设,网站怎么做出来的,seo实战技术培训,php 企业网站 后台图片上传前言 生产环境下,多数系统为了应对线上多种复杂情况而进行了集群架构的部署,保证系统的高性能、价格有效性、可伸缩性、高可用性等。通常将生产环境下的域名指向Nginx服务,通过它做HTTP协议的Web负载均衡。 session是什么 在计算机中&…

前言

生产环境下,多数系统为了应对线上多种复杂情况而进行了集群架构的部署,保证系统的高性能、价格有效性、可伸缩性、高可用性等。通常将生产环境下的域名指向Nginx服务,通过它做HTTP协议的Web负载均衡。

session是什么

在计算机中,尤其是在网络应用中,称为“会话控制”。Session对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的Web页之间跳转时,存储在Session对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当用户请求来自应用程序的 Web页时,如果该用户还没有会话,则Web服务器将自动创建一个 Session对象。当会话过期或被放弃后,服务器将终止该会话。Session 对象最常见的一个用法就是存储用户的首选项。例如,如果用户指明不喜欢查看图形,就可以将该信息存储在Session对象中。
session在服务器端,cookie在客户端。服务器会为每一个游览器(客户端)创建一个唯一的session。这个session是服务器端共享,每个游览器(客户端)独享的。我们可以在session存储数据。

session底层实现

session是每一个游览器(客户端)所唯一的,在访问一个网站时,在HTTP请求中往往会携带一个cookie,这个cookie的名字是JSESSIONID,这个JSESSIONID表示的就是session的id,这个是由服务器创建的,并且是唯一的。服务器在使用session时,会根据JSESSIONID来进行不同操作。

由集群引发的session共享问题

集群模式下,里面会含有多个服务器,而客户端在某个时刻访问哪个服务器是由负载均衡器决定的,这里就产生了一个问题如果一个用户的Session信息如果存储在一个服务器上,那么当负载均衡器把用户的下一个请求转发到另一个服务器上,由于服务器上没有用户的session信息,那么该用户就需要重新进行登录操作,或者是在某一个服务器上时创建的重要session信息将丢失。
为了解决在我们做Nginx负载均衡的时候会遇到会话保持的问题,为了保证同一用户session会被分配到同一台服务器上,这时就需要会话保持,解决这个问题的处理方式有很多种。下面推荐两种解决方案。

ip_hash 会话保持

ip_hash是一个算法,原理很简单,根据请求所属的客户端IP计算得到一个数值,然后把请求发往该数值对应的后端。也就是同一个客户端的请求,会发往同一台后端,所以可以达到保持会话的效果。
使用Nginx里upstream,配置ip_hash。
Nginx官网说明
在这里插入图片描述
配置:

http {upstream myapp1 {server srv1.example.com;server srv2.example.com;server srv3.example.com;}server {listen 80;location / {proxy_pass http://myapp1;}}
}

问题存在

这种解决方案并不完美。首先必须保障Nginx是在公网上,且Nginx前面不能再有其它代理服务器,这才能够保证Nginx能够获得用户真实IP。如果Nginx前面还有代理,或者还有一个Nginx,那么当前Nginx收到的就是代理过来的IP,所有IP都一样,最后只有1台服务器被利用,完全荒废了集群部署,浪费了多台服务器,如果生产是这样的部署策略,这样的调整简直是多此一举。

1.Nginx 二开

使用第三方模块,地址如下:
https://bitbucket.org/nginx-goodies/nginx-sticky-module-ng/overview

在这里插入图片描述
下载第三方模块,就要重新编译我们的Nginx。
首先下载nginx-sticky-module-ng的源码,下载地址:https://bitbucket.org/nginx-goodies/nginx-sticky-module-ng/downloads/
解压出源码,使用–add-module 加源码路径编译这个模块
比如:

./cfg... --add-module=/dev/zym/nginx-sticky-module-ng
make
make install

在Nginx配置文件中,找到upstream,去掉ip_hash策略。加上sicky,下图所示:

upstream{sticky;server 172.31.35.161:8080;server 172.31.35.151:9003;server 172.31.35.141:9002;}

原理在上述网址中有解释。不过多说明。

2.tengine

tengine是腾讯在Nginx基础上的扩展开发,另一个nginx分支。开发活跃,更新频繁,可以用作代替nginx的解决方案。sticky模块的地址如下:
http://tengine.taobao.org/document_cn/http_upstream_session_sticky_cn.html

# 默认配置:cookie=route mode=insert fallback=on
upstream foo {server 192.168.0.1;server 192.168.0.2;session_sticky;
}server {location / {proxy_pass http://foo;}
}

第二种:

#insert + indirect模式:
upstream test {session_sticky cookie=uid domain=www.xxx.com fallback=on path=/ mode=insert option=indirect;server  127.0.0.1:8080;
}server {location / {#在insert + indirect模式或者prefix模式下需要配置session_sticky_hide_cookie#这种模式不会将保持会话使用的cookie传给后端服务,让保持会话的cookie对后端透明session_sticky_hide_cookie upstream=test;proxy_pass http://test;}
}

总结

以上是Nginx会话保持的解决方案。当然,还有很多的方式都可以解决这类问题。包括cookie,redis,这里就不一一叙述了,感兴趣的朋友,欢迎留言交流,如果帮助你解决了实际问题,欢迎点个赞。

/** provide by zym0 error(s),0 warning(s)
*/
http://www.zhongyajixie.com/news/35338.html

相关文章:

  • 布吉网站建设搜索引擎优化的主要内容
  • 自己域名做网站搜索引擎优化指南
  • 建网站的公司起什么名好他达拉非功效与作用主要会有哪些
  • 做网站赚多少百度一下 你就知道官网 新闻
  • 辽阳建设银行网站阜新网站seo
  • php除了做网站还能做什么湖南搜索引擎推广平台
  • 站长工具seo综合查询工具今日重大新闻
  • 网站轮播效果怎么做的优化工具箱下载
  • 猎头公司收费标准抚州网站seo
  • 做男性服装的网站今日新闻十大头条内容
  • 一级域名做网站的好处千度搜索引擎
  • 四川手机网站开发怎么做推广让别人主动加我
  • 一个好的网站怎样布局百度搜索引擎广告
  • 做照片用的视频模板下载网站好黄页网站推广公司
  • wordpress最好用的编辑器南宁网站运营优化平台
  • 网页设计毕业论文参考文献上海优化外包
  • 温州微网站制作哪里有google海外版入口
  • 做海外房产最好的网站seo中文意思
  • 南皮网站建设网络营销过程步骤
  • 东莞佳诚网站建设有限公司如何推广外贸型网站
  • 哪里有零基础网站建设教学服务云计算培训
  • 吉林省人民政府门户网站网页推广怎么做的
  • 企业微信官方网站如何制作视频网站
  • 免费企业建站模板百度优化推广
  • 代办医疗网站域名备案管理课程培训
  • 个人店铺logo百度优化大师
  • 网站收藏的链接怎么做的百度权重1是什么意思
  • 郑州网站建设哪家公司好视频广告联盟平台
  • 不懂外贸做外贸网站好做吗网页搭建
  • 兖州网站建设多少钱温州seo服务