【解决】实现jsp和php共享session(多服务器:Apache和Tomcat)

这个问题是困惑我和经理很久的一个心结,应用使用JAVA开发的,SNS使用PHP开发的(为什么如此开发,自然有它的道理了)。最后到了整合阶段就犯愁了。怎样实现J2EE和PHP的session共享呢?J2EE用的Tomcat服务器,PHP用的是Apache服务器。

当然,

1、最直接,网上找到的最多的方法就是两个服务器进行整合咯,你可能会问,为什么不用一个服务器呢,那样session就直接可以共享了(这么问就菜了哦~~可以百度翻翻资料,这里就不多说了)。

两个服务器进行整合,当然得有个连接器了(mod_jk connector),具体不详述,参考以下文章:Apache+tomcat的整合 

整合很成功,两个服务器共用80端口(看个人配置咯,想8080也没问题),但session依旧不能共享。整合,只是整合的端口。。。

2、你还可能看到这么一些题目的文章“Apache+Tomcat负载均衡,session共享”。如果你仔细看这些文章的话,你会发现,它所指的是,有多个Tomcat服务器,这些Tomcat服务器使用APACHE来进行服务器请求分派,达到负载均衡的目的。它的“Session共享”,不是指APACHE和Tomcat之间的,而是指多个Tomcat服务器之间的。

3、你还有可能看到这么一篇文章“跨服务器Session共享”,一看,哇,好多方法啊,但每个方法实现起来,都不那么简单。

4、无敌方法,“单点登录(Single Sign On),简称 SSO”,配置也要耗费很多时间的。

最终,经过千辛万苦,你看到了这么一篇文章“PHP通过php-java-bridge调用Java类中方法下载PHP/JAVA Bridge进行相关配置即可。

 这里不详述具体实现过程,只是提起一些容易碰到的问题。

1、如果是远程服务器include文件,PHP ini中要开启相关模块的,比如url_include什么的。不然会报错的。

2、JAVA文件只有在Java bridge中运行时PHP获取到的JSP设置的session(即两者相互获取设置的相同名的session)才是正常的。所以你需要将你的JAVA应用和Java bridge两个应用进行整合。

 3、如果使用的是Java bridge,APACHE和Tomcat就不要进行整合了,还是用两个不同的端口,否则PHP会报503服务器错误的。具体原因还没确定,应该是端口冲突了。

 

 


阅读本文后,您的心情是:
 
恶心
愤怒
强赞
感动
路过
无聊
雷囧
关注
知识共享许可协议
评论(0) 浏览(23327) 引用(0)
引用地址:http://blog.baiwand.com/tb.php?sc=de0473&id=81
Tags:
« 【分享】Thinkphp添加自定义的配置(或自定义常量)方法 【经验】Apache2.2+(多版本)PHP的fastCGI的配置 »

Blogger

  • blogger
  • 天之骄子
  • 职位:研发工程师
    铭言:
    阳光与欢乐同在,
    与我同在
    主页:
    blog.baiwand.com

分类目录

日志归档

主题标签

数据统计

  • 日志:151篇
  • 评论:45条
  • 碎语:264条
  • 引用:0条

链接表

随机日志 »

最新日志 »

最新评论 »

标签云 »

订阅Rss
sitemap