PHP教程之多Web办事器之间同享Session的处理计划...
参加PHP开发学习,或许只是一次偶然的想法吧!只是想在走向社会之前体验、学习在一个公司或者说是项目团队之中如何去更有效的沟通、交流、共同合作,还有就是为毕业实习找工作增加伐码。 良多开辟中触及到用户的Session验证很保存的成绩,这个成绩对照成心思,总结了几种计划,只供参考。[成绩提出 ]
为了知足足够大的使用,知足更多的客户,因而咱们架设了N台Web办事器(N>=2),在多台Web办事器的情形下,咱们会触及到一个成绩:用户上岸一台办事器今后,假如在逾越到另外一台办事器的时分可以持续利用客户的Session?
(以下描写计划只是针对Linux/Unix + Apache + Mysql + PHP的开辟架构,固然,也能够扩大到其他平台。)
[成绩处理计划 ]
既然咱们的成绩已摆在眼前了,那末就要从手艺角度去处理成绩,给咱们的客户更好的体验,总结了几个计划。
1. 写客户端Cookie的体例
当用户上岸胜利今后,把网站域名、用户名、暗码、token、session无效工夫全体采取cookie的模式写入到客户真个cookie外面,假如用户从一台Web办事器逾越到另外一台办事器的时分,咱们的法式自动去检测客户真个cookie信息,停止判别,然后供应对应的办事,固然,假如cookie过时,或有效,天然就不让用户持续办事了。固然,这类办法的坏处就不问可知了,好比客户端禁用了cookie或cookie被黑客盗取了呢?
2. 办事器之间Session数据同步的体例
假定Web办事器A是一切用户上岸的办事器,那末当用户验证上岸一下,session数据就会写到A办事器里,那末就能够本人写剧本或守护历程来主动把session数据同步到其他Web办事器,那末当用户跳转到其他办事器的时分,那末session数据是分歧的,天然就可以够直接停止办事不必再次上岸了。弱点是,能够会速度慢,不不乱,假如是单向同步的话,上岸办事器呈现成绩,那末其他办事器也没法办事,固然也能够思索双向同步的成绩。
3. 使用NFS同享Session数据的体例
其实这个计划和上面的Mysql计划相似,只是存储体例纷歧样。大致就是有一台公共的NFS办事器(Network File Server)做同享办事器,一切的Web办事器上岸的时分把session数据写到这台办事器上,那末一切的session数据其实都是保留在这台NFS办事器上的,不管用户会见那太Web办事器,都要来这台办事器获得session数据,那末就可以够完成同享session数据了。弱点是依附性太强,假如NFS办事器down失落了,那末人人都没法任务了,固然,可以思索多台NFS办事器同步的模式。
(关于NFS的经典文章:http://linux.vbird.org/linux_server/0330nfs.php)
4. 使用Mysql数据库同享Session数据的体例
这个体例与NFS的体例相似,也是采取一台Mysql办事器做同享办事器,把一切的session的数据保留到Mysql办事器上,一切Web办事器都来这台Mysql办事器来获得Session数据。弱点也是依附性太强,Mysql没法任务了影响一切的Web办事器,固然,可以思索多太Mysql数据库来同享session,利用同步Mysql数据的体例。
(Mysql同步我写过文章:http://blog.csdn.net/heiyeshuwu/archive/2005/10/31/520007.aspx)
5. 利用硬件装备
这个算是对照成熟的处理计划了,利用相似BIG-IP的负载装备来完成资本同享,那末就可以够又不乱又公道的的同享Session了。今朝良多门户网站采取这类体例。弱点很分明了,就是要免费了,硬件装备一定需求购置本钱的,不外关于专业或大型使用来说,是对照公道而且值得的。
(关于BIG-IP装备:http://www.f5.com.cn/channel.php?channel=product&type=BIG-IP-%D3%A6%D3%C3%C1%F7%C1%BF%B9%DC%C0%ED&id=36)
以上这些只是我的团体鄙意,没有经由实验,不包管其正确其实性,只是供应一种设法和参考。
当然你可以把你最基本的功能放出来的时候就放出来,比如放到论坛上,让大家都参与, 兴趣是最好的老师,百度是最好的词典。 ,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。 再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。 使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的 对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。 最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。 我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。 爱上php,他也会爱上你。 当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标, 当然这种网站的会员费就几十块钱。 因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax 我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。 写的比较杂,因为我也是个新手,不当至于大家多多指正。 你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。 找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。 个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。 首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。 曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线\\\\\\\'_\\\\\\\' ;
页:
[1]