论坛首页 入门技术论坛

通过apache访问Tomcat,session丢失的问题

浏览 7806 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-07-10   最后修改:2009-07-14
apache版本2.2
httpd.conf配置如下:
<VirtualHost *:80>
ServerAdmin webmaster@yourdomain.com
DocumentRoot  D:\work\tellu
ServerName www.tellu.net
ErrorLog D:/error2_log
TransferLog D:/access2_log
ProxyPass /page/ !
ProxyPass /static/ !
ProxyPass /adimage/ !
ProxyPass /swf/ !
ProxyPass / ajp://192.168.3.56:8009/tellu/ smax=5 max=20 ttl=120 retry=300
proxyPassReverse / ajp://192.168.3.56:8009/tellu/
</VirtualHost>
以上配置的效果是当访问www.tellu.net这个域名的时候转入ajp://192.168.3.56:8009/tellu/,也就是tomcat的url,可以访问相应的jsp
如果访问www.tellu.net/page/(或者:/static/,/adimage/,/swf)的时候会访问本机的D:\work\tellu\下的对应目录下的静态资源
均测试通过
当访问动态资源时,每次访问会创建一个单独的sessionid,以下是我对1个jsp的连续2次刷新:
DEBUG  New session created, sessionId : E94F5F9E1A581A57590B491AC45064E8
- New session created, sessionId : 1D3F7EA6DC6CCA458C3CF5C7C5B408A6
关掉apache,光用tomcat访问不存在这个问题,应该是对apache映射的原理理解不够深刻.


补充:
此问题已解决,配置上出了一点问题,导致用户每次访问都重新访问tomcat,session自然不同:
修改httpd.conf:
<VirtualHost *:80>
ServerAdmin webmaster@yourdomain.com
DocumentRoot  D:\work\tellu
ServerName www.tellu.net
ErrorLog D:/error2_log
TransferLog D:/access2_log
ProxyPass /page/ !
ProxyPass /static/ !
ProxyPass /adimage/ !
ProxyPass /swf/ !
ProxyPass / ajp://www.tellu.net:8009/ smax=5 max=20 ttl=120 retry=300
</VirtualHost>
然后在tomcat的server.xml中修改虚拟主机如下:
<Host name="www.tellu.net"  appBase="D:\system\Tomcat 6.0"  unpackWARs="true" autoDeploy="true"  xmlValidation="false" xmlNamespaceAware="false">       
        <Context path="" docBase="webapps\tellu" reloadable="true" />
      </Host>

   发表时间:2009-07-10  
用中心缓存保存session吧,这样解决了^
0 请登录后投票
   发表时间:2009-07-20  
请问修改了tomcat的哪个配置?
apache的关键修改是什么?
0 请登录后投票
   发表时间:2009-07-20  
yzjiang8888 写道
请问修改了tomcat的哪个配置?
apache的关键修改是什么?

tomcat: conf/server.xml
apache: conf/httpd.conf
就这2个文件配置一下就可以了
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics