如何实现会话共享------以可道云为例

一、环境部署

10.0.0.7  172.16.1.7    web01

10.0.0.8  172.16.1.8   web02

10.0.0.5 172.16.1.5     lb01

10.0.0.6  172.16.1.6   redis

二、操作部署

1.在web两个节点上进行安装配置可道云

web01上

1)下载好可道云的代码,并属好身份

#下载可道云的软件包
[root@web01 ~]#wget http://static.kodcloud.com/update/download/kodexplorer4.40.zip [root@web01~]#mkdir /code/kode [root@web01 ~]#unzip -d /code/kode #创建运行的身份 [root@web01 ~]#groupadd -g 666 www [root@web01 ~]#useradd -g 666 -u 666 www [root@web01 ~]#chown -R www.www /var/lib/php/ [root@web01 ~]#chown -R www.www /code/kode

2)配置nginx,并启动

[root@web01 code]# cat /etc/nginx/conf.d/kode.ld.com.conf
server {
    listen 80;
    server_name kode.ld.com;
    root /code/kode;

    location / {
        index index.php;
    }

    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}
[root@web01 code]# nginx -t
[root@web01 code]# systemctl reload nginx

3)做好域名解析
10.0.0.7  kode.ld.com
4)测试访问
在浏览器上进行访问:kode.ld.com ,然后进行设置用户名及密码,这时本服务器已经记录了自己的sessionID号码。

 

web02上

将web01的操作推送一份给web02,一模一样的
1)下载解压安装,并做好身份的修改

[root@web02 ~]#chown -R www.www /code

2)推送一份nginx的配置

[root@web01 code]#scp /etc/nginx/conf.d/kode.ld.com.conf root@172.16.1.8:/etc/nginx/conf.d/kode.ld.com.conf

3)启动

4)域名解析

10.0.0.8  kode.ld.com

5)测试

在浏览器访问kode.ld.com 然后进行设置用户名及密码,这时本服务器已经记录了web02的sessionID号码。

2.接入负载均衡

1)配置负载均衡

[root@lb01 ~]# cat /etc/nginx/conf.d/proxy_kode.ld.com.conf
upstream kode {
    server 172.16.1.7:80;
    server 172.16.1.8:80;
}

server {
    listen 80;
    server_name kode.ld.com;

    location / {
        proxy_pass http://kode;
        include proxy_params;
    }
}

2)启动

[root@lb01 ~]#nginx -t
[root@lb01 ~]#systemctl restart nginx

3)域名解析

10.0.0.5  kode.ld.com

4)测试

在浏览器上进行访问code.ld.com可以进入登录可道云的界面,但是却无法输入用户名和密码进行登录。
这就需要借助我们的Redis来记录web登录时记录的sessionID,以此达到会话共享的目的。

3.将存储在本地的Session,让其存储在Redis中。

安装、配置、启动

1.安装Redis
 [root@redis ~]# yum install redis -y

2.配置 Redis (这个IP地址是本机的内网IP地址)
[root@redis ~]# sed -i '/^bind/c bind 127.0.0.1 172.16.1.6' /etc/redis.conf

3.启动Redis
[root@redis ~]# systemctl start  redis
[root@redis~]# systemctl enable redis
[root@redis ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 172.16.1.51:6379        0.0.0.0:*               LISTEN      8966/redis-server 1

4.修改( web01 web02 ) php程序,将原本存储至本地的SessionID,修改为存储至远程的Redis服务器

PS:所有的web节点都需要操作一遍的。

#修改存储session的位置
[root@web02 ~]# vim /etc/php.ini session.save_handler = redis session.save_path = "tcp://172.16.1.6:6379?weight=1&timeout=2.5" #连接redis #注释php-fpm中控制session存储的路径 [root@web02 ~]# vim /etc/php-fpm.d/www.conf ;php_value[session.save_handler] = files ;php_value[session.save_path] = /var/lib/php/session #重启php-fpm [root@web02 ~]# systemctl restart php-fpm

5.测试访问

再次在浏览器上访问kode.ld.com 然后发现输入用户名及密码已经登录成功了。达到了会话共享的目的。

 

posted @ 2020-05-08 21:01  ld_001  阅读(651)  评论(0编辑  收藏  举报