Linux基本服务Nginx——day05——Session集群配置

session---cookie 网站搭建

    很多登陆信息的网站,在登陆一次后,不管怎么刷新,也许处理的web服务器变了,但是登陆信息一直在,不需要我们再次输入,这就用到session-cookie的技术,其原理就是,服务端用session记录用户登陆的信息,然后生成一个sid,然后把sid放到cookie里,再把cookie发给客户端,这样客户端刷新或者短时间后再打开,就会把cookie发给服务端,服务端根据其kid就可以掉出存储的session文件里的信息,这样就不需要客户端再次输入

    模拟完成这个web服务器,需要搭建集群,一个nginx的web调度服务器,多个web服务器

    其中 nginx调度服务器搭建方法可以查看nginx总结;

    然后 搭建两个web服务器,可以用Apache,也可以用nginx,
    如果用Apache,只需要修改配置文件中的DirectoryIndex,使其默认访问index.php即可
    而如果用nginx,需要修改/下的index,还要作动静分离才可以    然后在PHP文件中写上session的调用语句

<?php
session_start(); # Starting Session

$username=$_POST['username'];
$password=$_POST['password'];

# Assume user authenticated successfully. Store session variables

$_SESSION['login_user']= $username; 
$_SESSION['logged_in'] = "true";
$_SESSION['id'] = session_id();

header("Location: home.php"); 

?>

    这样就可以实现单台服务器可以和客户端session会话连接,不过默认session把信息数据保存在本地服务器,
    也就是说,访问调度服务器,调度服务器把数据转发给一个web服务器,这个web服务器生成session信息,发送cookie给客户端,但这时候,如果客户端刷新,调度器把数据转发给其他web服务器,这些服务器里面没有相应的session文件,导致又要输入,这时候,我们就要把session信息互通,具体方法就是,在调度器中建立一个memcache数据库,然后所有的web服务器session信息都存入数据库

   PHP---memcache
     php连接数据库需要相应的包 yum install -y php-pecl-memcache

      装包后,就可以测试连接了,用下面的php文件测试一下

<?php
$memcache=new Memcache;                //创建memcache对象
$memcache->connect('IP',11211) or die ('could not connect!!');
$memcache->set('key','test');             //定义变量
$get_values=$memcache->get('key');        //获取变量值
echo $get_values;
?>

    然后就是配置php的session配置,其配置文件: /etc/php-fpm.d/www.conf,修改最后两行

php_value[session.save_handler] = memcache
php_value[session.save_path] = "tcp://调度器IP:11211"

    这样就实现了全部的web集群的任务
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值