文档章节

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

ali安东尼
 ali安东尼
发布于 2017/07/06 15:52
字数 532
阅读 35
收藏 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
基于Tomcat集群的会话保持

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

ZMelissa
06/28
0
0
了解:Apache+Tomcat实现负载均衡

反向代理负载均衡 (Apache2+Tomcat7/8) 使用代理服务器可以将请求转发给内部的Web服务器,让代理服务器将请求均匀地转发给多台内部Web服务器之一上,从而达到负载均衡的目的。这种代理方式...

凡尘里的一根葱
2015/11/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

李鸿章六百多字参倒豪门重臣,晚清第一奏折,藏尽顶级权谋话术!

道光二十七年(1847年),二十四岁的李鸿章高中进士,列二甲第十三名。 在此期间,有桩轶事挺有意思。 会试时,李鸿章的房师为当时的名士孙锵鸣。发榜后,孙锵鸣见自己这一房只考中了李鸿章、...

乔老哥
11分钟前
0
0
PTA-基础编程题目集-7-14 求整数段和

给定两个整数A和B,输出从A到B的所有整数以及这些数的和。 输入格式: 输入在一行中给出2个整数A和B,其中−100≤A≤B≤100,其间以空格分隔。 输出格式: 首先顺序输出从A到B的所有整数,每...

niithub
12分钟前
1
0
Spring Qualifier的使用

摘要 spring 的 qualifier 平常使用一般直接是使用id 来限定,不过spring给我们提供了更强大的功能。 使用方法 直接使用 直接在@Qualifier中限定bean的id 在bean上使用@Qualifier来指定后续使...

52iSilence7
14分钟前
0
0
【dup】和【pop】

dup: 复制栈顶元素并压入栈 pop: 出栈操作 代码 public class JvmTest1{    public static void testMethod(){ new JvmTest1();  }} 编译字节码文件 javap -c JvmTest1.cl...

时刻在奔跑
17分钟前
2
0
day179-2018-12-16-英语流利阅读-待学习

《海王》:上映 7 天,票房突破 9 亿,DC 要翻身? Daniel 2018-12-16 1.今日导读 这部电影堪称“有《阿凡达》般的视觉奇观,《指环王》般的史诗质感,《夺宝奇兵》般的寻宝历险,《狮子王》...

飞鱼说编程
25分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部