V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
s609926202
V2EX  ›  问与答

ELB, Redis 实现 session 共享,遇到些问题。。

  •  
  •   s609926202 · 2017-05-11 20:07:44 +08:00 · 2181 次点击
    这是一个创建于 2778 天前的主题,其中的信息可能已经有所发展或是发生改变。

    约定:服务器 a 和 b,程序是 thinkphp3.1 写的 crm

    a 上装了 redis,并绑定 127.0.0.1、以及其他的 Ip,然后在 a 中的 php.ini 里设置了 session 使用 redis 服务,并使用 tcp://ip:6379 来进行连接。结果 a 上的网站可以正常访问并登陆。

    b 上直接在 php.ini 配置 session 使用 a 服务器上的 redis 服务,并使用 tcp://ip:6379 来进行连接,结果是网站可以正常访问,但是却无法登陆。

    请教各位,这个 session 还需要做些什么呢?

    15 条回复    2017-05-12 10:11:24 +08:00
    jarlyyn
        1
    jarlyyn  
       2017-05-11 20:52:50 +08:00 via Android
    你不是绑定了 127.0.0.1 吗?
    s609926202
        2
    s609926202  
    OP
       2017-05-11 21:22:51 +08:00
    @jarlyyn 我同时绑定了安装了 redis 服务的服务器的内网 ip,然后另外一台通过这个 ip 进行连接 redis 服务。
    jarlyyn
        3
    jarlyyn  
       2017-05-11 21:41:31 +08:00 via Android
    外网 telnet 端口能通么
    stabc
        4
    stabc  
       2017-05-11 22:04:51 +08:00
    环境不明,还是排查吧。比如先关掉 a 的 WEB (只留 redis ),把 b 的登录搞定再说。
    s609926202
        5
    s609926202  
    OP
       2017-05-11 22:26:27 +08:00
    @jarlyyn 通的。
    s609926202
        6
    s609926202  
    OP
       2017-05-11 23:01:02 +08:00
    @jarlyyn 我感觉是 b 上登录时无法向 a 服务中的 redis 服务写入 session 信息导致的,这个大家知道如何判断吗?或者有什么解决方法。
    Lax
        7
    Lax  
       2017-05-11 23:16:12 +08:00
    还没判定原因,要什么解决办法!先看一下 b 上的程序日志有没有报错,至少在 b 上用 redis-cli 连一下判断能不能读写。
    s609926202
        8
    s609926202  
    OP
       2017-05-11 23:41:21 +08:00
    @Lax b 服务器上是没有问题的,可以正常写入 key-value 对,而且 b 上的 php.ini 设置的 session_path 和 a 的一样,都是 10.12.222.134:6379。
    那我目前猜测应该是 a 上的网站无法向 b 上的 redis 服务写 key-value 对。但是不知道从何下手,好像并没有不能写入这一问题啊,。
    s609926202
        9
    s609926202  
    OP
       2017-05-12 00:59:12 +08:00
    解决了,,是 a 服务器上没有安装 phpredis 扩展,,,我这个逗。
    Jakesoft
        10
    Jakesoft  
       2017-05-12 08:21:34 +08:00 via iPhone
    这种问题不看日志到 v2 上来提问简直是舍近求远
    s609926202
        11
    s609926202  
    OP
       2017-05-12 08:28:44 +08:00 via iPhone
    @Jakesoft 呃,可是我看了 php 错误日志其中并没有任何信息啊。。
    Jakesoft
        12
    Jakesoft  
       2017-05-12 08:51:15 +08:00 via iPhone
    @s609926202 如果没安装 phpredis 应该会报 Redis 类不存在吧,要么你们日志有问题……
    lianxiaoyi
        13
    lianxiaoyi  
       2017-05-12 09:30:21 +08:00
    看你的 sessionID 是不是一样诺。。。。。。还有你的 sessionid 在你的 cookie 域名是啥 。。。。。
    lianxiaoyi
        14
    lianxiaoyi  
       2017-05-12 09:31:24 +08:00
    http://notephp.com/?id=22 这是我用 yii 做的一套。。看对你有没有帮助。。。。。文章纯手工打的。。。并非复制粘贴
    fuxkcsdn
        15
    fuxkcsdn  
       2017-05-12 10:11:24 +08:00 via iPhone
    @s609926202 你不会是把错误给屏蔽了吧…
    想起之前别人部署的一台服务器,我也是调了半天没看到任何错误,但明显感觉哪里出错了导致输出不符合预期
    后来查看 php.ini 发现把所有错误都输出到一个日志文件了…
    一看日志…好吧,ext 版本问题…
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5808 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 06:22 · PVG 14:22 · LAX 22:22 · JFK 01:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.