欢迎来到sunbet|首页官网!

sunbet|首页官网

sunbet,sunbet一站式解决服务商

应用于多行业,安全省心,有效控制成本

全国服务热线:

18805412666

nginx服务器session共享常见解决办法

发布日期:2019-11-03 16:32

  能把session改成cookie,就能避开session的一些短处,在畴前看的一本J2EE的书上,也指明在集群体系中不克不迭用session,不然惹出祸根来就欠好办。若是体系不庞大,就优先思量可否将session去掉,改动起来很是贫苦的话,再用下面的法子。

  如许就改成了操纵x_forwarded_for这个头作因子,在nginx新版本中可支撑读取cookie值,所以也能够改成:

  ip_hash是容易理解的,可是由于仅仅能用ip这个因子来分派后端,因而ip_hash是出缺陷的,不克不迭在一些环境下利用:

  已知的,php能够用数据库或memcached来保留session,从而在php自身成立了一个session集群,用如许的体例能够令 session包管不变,即便某个节点有毛病,session也不会遗失,合用于较为严酷但请求量不高的场所。可是它的效率是不会很高的,分歧用于对效率 要求高的场所。

  以上两个法子都跟nginx没什么关系,下面来说说用nginx该若那边置:

  1/ nginx不是最前真个办事器。ip_hash要求nginx必然是最前真个办事器,不然nginx得不到准确ip,就不克不迭按照ip作hash。譬如利用 的是squid为最前端,那么nginx取ip时只能获得squid的办事器ip地点,用这个地点来作分流是必定庞杂的。

  2/ nginx的后端另有其它体例的负载平衡。倘使nginx后端又有其它负载平衡,将请求又通过别的的体例分流了,那么某个客户真个请求必定不克不迭定位到统一 台session使用办事器上。这么算起来,nginx后端只能间接指向使用办事器,或者再搭一个squid,然后指向使用办事器。最好的法子是用 location作一次分流,将必要session的部门请求通过ip_hash分流,剩下的走其它后端去。

  nginx中的ip_hash手艺可以大概将某个ip的请求定向到统一台后端,如许一来这个ip下的某个客户端和某个后端就能成立起安定的session,ip_hash是在upstream设置装备安排中界说的:

  为领会决ip_hash的一些问题,能够利用upstream_hash这个第三方模块,这个模块大都环境下是用作url_hash的,可是并不障碍将它用来做session共享:

sunbet