关于“php修改session”的问题,小编就整理了【3】个相关介绍“php修改session”的解答:
如何在多台web服务器上共享session?一、将本该保存在web服务器磁盘上的session数据保存到cookie中
即用cookie会话机制替代session会话机制,将session数据保存到客户端浏览器的cookie中,这样同一个用户访问同一网站时,无论负载均衡到哪台web服务器,都不用再去服务器请求session数据,而直接获取客户端cookie中的session数据。如此,同一个用户的登录状态就不会丢失了。
但这样做,有三大弊端:
把session数据放到客户端的cookie中,一般都是重要数据(如用户id、昵称等),会存在安全问题,但可以将session数据加密后,再存放到cookie中,来降低安全风险。
浏览器对单个cookie的数据量大小限制为4K左右,因此会存在数据量的限制问题。
影响带宽性能,降低了页面的访问速度。在高访问量的情况下,用户每次请求时,都要将客户端cookie中的session数据发送到服务器,要占用较多的带宽,进而影响访问速度,服务器带宽成本增高。
二、将本该保存在web服务器磁盘上的session数据保存到MySQL数据库中
sessionid还是利用cookie机制存储到客户端,但session数据却存放在MySQL服务器上。(需要建立sessionid和session数据行的对应关系)
如何实现多台web服务器共享session数据?这个项目一开始就设计的“很大”,考虑了很多负载均衡方面的东西,比如采用nginx将php的请求分摊到若干个运行phpfastcgi的独立服务器中。这样的设计除了在每个phpfastcgi服务器中要保存一份程序的拷贝以外,还有一个亟待解决的问题。由于phpfastcgi进程分别运行在不同的服务器上,默认的,php的session数据是在各个服务器上分别存放的,这样的话,如果在某一次php请求过后,nginx将php请求发送到了另外集群中的另外一台phpfastcgi服务器,那么就会导致session的丢失。经过一系列考虑,项目组决定采用一台独立memcached服务器来存储整个项目的phpsession数据,再通过改写php的session处理函数来对memcached服务器进行数据读写,然后解决各个phpfastcgi中session不同步的问题。
项目背景基本上就是上面说的那些,下面大概说说相关的网络环境,然后进入具体的配置、实现过程:
1、nginx服务器一台,IP地址:172.16.236.208
2、phpfastcgi服务器两台,IP分别为:172.16.236.210,172.16.236.211
asp和php里session的区别是什么?1、ASP中session有效期默认为20分钟,而PHP中的默认为180分钟;
2、ASP与PHP中的session都是以文件形式存储在服务器端,但是有一个区别,PHP中的session是存储在一个超全局变量中,所以PHP中要使用session,要用session_start();函数启用session。
到此,以上就是小编对于“php修改session”的问题就介绍到这了,希望介绍关于“php修改session”的【3】点解答对大家有用。