文档章节

Nginx+Redis实现反向代理和Session共享(二)

ali安东尼
 ali安东尼
发布于 2017/08/28 15:38
字数 534
阅读 10
收藏 0

###Session在PHP默认存放形式

1.PHP处理Session默认是创建会话数据文件,以文件的形式存储会话信息;

2.通过查看<?php echo phpinfo();得知,Session的存放路径:session.save_path = /var/lib/php/session

###文件形式存放Session的劣势:

1.如果用户数量非常大,文件操作的I/O开销就会很大,会严重影响系统的执行效率。

2.如果多个系统直通之间需要共享session数据,而且系统之间是在不同的服务器上的,那文件存放方式就不可以实现这样的需求了。

###Session的其他存放形式

1.Session可以用数据库、NFS或SAMBA、Redis、memcached进行session的存放。   2.当然最优的方式还是使用Nosql中的Redis或者memcached这种键值(Key-Value)存储数据库存放最合适不过了。

###Redis存放Session

PHP默认就支持保存session到redis,不需任何额外代码。

修改php配置,总共有3种方法,如下选择其中一种即可:

修改php.ini

    a. 打开 php.ini 文件,设置下面两个值:     session.save_handler = redis     session.save_path = "tcp://127.0.0.1:6379"     b. 如果Redis有密码,用下面的配置:     session.save_path = "tcp://127.0.0.1:6379?auth=password"     c. 配置完成后,重启PHP服务

配置完成后,重启PHP-FPM (以PHP-FPM形式启动)

    a. PHP-FPM的配置文件/etc/php-fpm.conf或者/etc/php-fpm.d/*.conf中,也有session的配置。         而且它们的session配置优先级比php.ini高,会覆盖php.ini中的配置。所以,也直接在这里面改:           php_value[session.save_handler] = redis         php_value[session.save_path] = "tcp://127.0.0.1:6379"     c. 如果用php.ini的配置,则需要把这两行用;注释掉。避免出现优先级问题     d. 然后重启PHP-FPM。

代码添加方式

    ini_set('session.save_handler', 'redis');     ini_set('session.save_path', 'tcp://127.0.0.1:6379');

###案例测试

1.下面案例是使用代码添加方式在Redis存放SESSION。

2.文件说明:

login.php是登录页面。任何操作必须先登录。

session.php主要是打印session数据,登录之后才可以看到的。

login.php  

session.php  

由睿江云人员提供,想了解更多,请登陆www.eflycloud.com

© 著作权归作者所有

ali安东尼
粉丝 3
博文 192
码字总数 173101
作品 0
广州
私信 提问
Nginx--Session共享问题

在Nginx做反向代理时,面对集群,如何保证Session的一致性。 第一种是以负载均衡服务器本身提供的session共享策略,每种服务期的配置是不一样的并且nginx本身是没有的。 第二种是利用web容器...

btwangzhi
2017/11/26
0
0
nginx负载均衡实现tomcat集群方案简要小结

重点两部分:一、负载均衡二、tomcat集群 所谓tomcat集群,就是可以向外提供并行服务的多台机器,任何一台服务器宕机,其它服务器可以替代它向外提供服务,而不影响用户访问。 nginx是一个常...

天下杰论
2015/03/11
0
1
tomcat的session问题

记录客户端操作我们一般使用cookie进行客户身份识别,session存储客户端的信息,session保存在服务器端。当我们负载均衡服务后,客户端请求定位到另外一台服务器,session信息在另外一台服务...

Ailu0li
2017/02/11
0
0
使用Nginx在windows和linux上搭建集群

Nginx Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器 特点:反向代理 负载均衡 动静分离… 反向代理(Reverse Proxy)方式是指以代理服务器来接受int...

必须往前走
01/11
0
0
基于Tomcat集群的会话保持

一、为什么要实现会话保持 因为http协议是一种无状态的协议,客户端和服务器建立连接在完成数据传输之后即断开连接,当客户端再次请求建立连接的时候,服务器并不知道两次连接之间有什么联系...

ZMelissa
2018/06/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

NIO基于长度域的报文在Netty下的解码

1, 先复习一下粘包/拆包 1.1, 粘包/拆包的含义 TCP是个“流”协议, 并不了解上层业务数据的具体含义, 它会根据TCP缓冲区的实际情况进行包的划分,所以在业务上认为,一个完整的包可能会被TCP...

老菜鸟0217
今天
8
0
从零开始搭建spring-cloud(2) ----ribbon

在微服务架构中,业务都会被拆分成一个独立的服务,服务与服务的通讯是基于http restful的。Spring cloud有两种服务调用方式,一种是ribbon+restTemplate,另一种是feign。 其实我们已经在上...

Vincent-Duan
今天
19
0
get和post的区别?

doGet:路径传参。效率高,安全性差(get的传送数据量有限制,不能大于2Kb) doPOST:实体传参。效率低,安全性好 建议: 1、get方式的安全性较Post方式要差些,包含机密信息的话,建议用Pos...

花无谢
昨天
4
0
当谈论迭代器时,我谈些什么?

当谈论迭代器时,我谈些什么? 花下猫语:之前说过,我对于编程语言跟其它学科的融合非常感兴趣,但我还说漏了一点,就是我对于 Python 跟其它编程语言的对比学习,也很感兴趣。所以,我一直...

豌豆花下猫
昨天
14
0
10天学Python直接做项目,我做了这5件事

初学者如何尽快上手python? 市面上关于如何学python的资料很多,但是讲的都太复杂。 我就是很简单的几句话,从小白到开发工程师,我只做了五件事。 我觉得任何商业计划书如果不能用几句话讲...

Python派森
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部