Ubuntu1404下,Tomcat8+Nginx+memcache配置服务器集群session共享
之前配置的Tomcat集群使用的是Tomcat提供的简单的集群管理的方式:
配置参考的文档有:点击打开链接、在这个链接里可以找到与你的Tomcat匹配的jar包,以及Tomcat配置的方法。下面记录一下我的配置过程。
1.根据前面博客的内容配置好Nginx反向代理;
2.在ubuntu下安装memcache:
可直接使用下面的命令进行安装
sudo apt-get install memcached3.编辑/etc/memcached.conf文件:
这个文件里有各个参数的配置,在这里要把-l参数注释掉,因为默认情况下memcache会监听所有地址,或者把127.0.0.1改为0.0.0.0来让memcache监听默认地址。
如果不这么做的话,就只能在本机上使用memcached,其他机器连接不进来,也就没有了意义。
配置完后,可以使用如下的命令查看是否能连接memcache,其中ip是memcache主机安装的ip地址,11211是memcache的监听端口。
telnet ip 11211
4.在所有的Tomcat节点上编辑CATALINA_HOME/conf/context.xml文件,在
<manager classname="de.javakaffee.web.msm.MemcachedBackupSessionManager" memcachednodes="n1:cloud2:11211,n2:cloud3:11211" sticky="false" sessi lockingmode="auto" requesturiignorepattern=".*\.(ico|png|gif|jpg|css|js)$"></manager>memcachedNodes是配置安装了memcache的节点,cloud2和cloud3是主机名,必须是本机能识别的,n1和n2是我们取的memcached节点的名称,11211是memcache监听的端口,11211是默认的端口。
5.添加一些jar包到CATALINA_HOME/lib下
我这里使用到的包有:
memcached-session-manager-1.8.3.jar memcached-session-manager-tc8-1.8.3.jar spymemcached-2.11.1.jar
6.然后就可以启动Tomcat和nginx进行测试了
我这里的测试思路是这样的,使用如下代码建立一个Servlet,然后部署到两个tomcat服务器上。只启动其中一个服务器,然后通过浏览器访问负载均衡服务器,可在浏览器上查看并记下此时的SessionID。然后关闭这个服务器,启动另一个tomcat服务器,然后再用相同的地址访问负载均衡服务器,再在浏览器上查看SessionID,若两次SessionID一致,则说明SessionID被共享了。
package com.cyber_space.Servlet; import java.io.IOException; import java.io.PrintWriter; import java.net.Inet4Address; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class TestServlet */ @WebServlet("/TestServlet") public class TestServlet extends HttpServlet { private static final long serialVersionUID = 1L; public TestServlet() { super(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { handle(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { handle(request, response); } private void handle(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setHeader("Content-type", "text/html;charset=UTF-8"); String remoteIpString = request.getRemoteAddr() + " " + request.getRemoteHost() + " " + request.getRemoteUser(); PrintWriter pw = response.getWriter(); pw.println("请求来自:" + remoteIpString); request.getSession().setAttribute("5", 5); String sessionID = request.getSession().getId(); pw.println("赋予它的SESSIONID是:" + sessionID); Inet4Address inet4Address = (Inet4Address) Inet4Address.getLocalHost(); pw.println("服务器的IP地址是:" + inet4Address.getHostAddress()); } }
这里还有许多可以做的工作暂时还没做,如高效的序列化配置等,以后有时间再来做。
版权声明:本文为博主原创文章,未经博主允许不得转载。
以上就介绍了Ubuntu1404下,Tomcat8+Nginx+memcache配置服务器集群session共享,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

ThebestapproachforsendingemailsinPHPisusingthePHPMailerlibraryduetoitsreliability,featurerichness,andeaseofuse.PHPMailersupportsSMTP,providesdetailederrorhandling,allowssendingHTMLandplaintextemails,supportsattachments,andenhancessecurity.Foroptimalu

使用依赖注入(DI)的原因是它促进了代码的松耦合、可测试性和可维护性。1)使用构造函数注入依赖,2)避免使用服务定位器,3)利用依赖注入容器管理依赖,4)通过注入依赖提高测试性,5)避免过度注入依赖,6)考虑DI对性能的影响。

phperformancetuningiscialbecapeitenhancesspeedandeffice,whatevitalforwebapplications.1)cachingwithapcureduccureducesdatabaseloadprovesrovesponsemetimes.2)优化

ThebestpracticesforsendingemailssecurelyinPHPinclude:1)UsingsecureconfigurationswithSMTPandSTARTTLSencryption,2)Validatingandsanitizinginputstopreventinjectionattacks,3)EncryptingsensitivedatawithinemailsusingOpenSSL,4)Properlyhandlingemailheaderstoa

TOOPTIMIZEPHPAPPLICITIONSFORPERSTORANCE,USECACHING,数据库imization,opcodecaching和SererverConfiguration.1)InlumentCachingWithApcutCutoredSatfetchTimes.2)优化的atabasesbasesebasesebasesbasesbasesbaysbysbyIndexing,BeallancingAndWriteExing

依赖性注射inphpisadesignpatternthatenhancesFlexibility,可检验性和ManiaginabilybyByByByByByExternalDependencEctenceScoupling.itallowsforloosecoupling,EasiererTestingThroughMocking,andModularDesign,andModularDesign,butquirscarecarefulscarefullsstructoringDovairing voavoidOverOver-Inje

PHP性能优化可以通过以下步骤实现:1)在脚本顶部使用require_once或include_once减少文件加载次数;2)使用预处理语句和批处理减少数据库查询次数;3)配置OPcache进行opcode缓存;4)启用并配置PHP-FPM优化进程管理;5)使用CDN分发静态资源;6)使用Xdebug或Blackfire进行代码性能分析;7)选择高效的数据结构如数组;8)编写模块化代码以优化执行。

opcodecachingsimplovesphperforvesphpermance bycachingCompiledCode,reducingServerLoadAndResponSetimes.1)itstorescompiledphpcodeinmemory,bypassingparsingparsingparsingandcompiling.2)useopcachebachebachebachebachebachebachebysettingparametersinphametersinphp.ini,likeememeryconmorysmorysmeryplement.33)


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

SublimeText3 Linux新版
SublimeText3 Linux最新版

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

Atom编辑器mac版下载
最流行的的开源编辑器