`

手把手教你负载均衡-tomcat1.7+nginx+memcached

阅读更多

一.为什么开始写博文

      最近郑州这边也兴起了,像北上广面试的时候需要问有技术博客,参与过开源的github项目吗,都30的人了,现在开始写我想也不晚,现在开始吧自己的学习都记录下来,之前很多东西都了解,但是缺少纪录,现在开始纪录吧。

 

二.为什么开始搞负载均衡

      做了多年的企业内部的java开发一直只限于写代码,带项目也是针对内网来的一个tomcat来跑,用户量也很少,自己也不怎么跳槽(导致知识面比较窄),都是业务上比较熟悉,根据需求都可以完成开发。

      公司的战略开始互联网项目,开始了解了负载均衡,开始恶补跟之前的同事进行交流,了解了nginx,通过了解发现很多的互联网网站都是实用的nginx,访问一些网站报的404都是nginx报的,才知道原来可以通过nginx下配置多个tomcat来进行负载一个tomcat的压力。好神奇尴尬

      公司的人员访问量并发越来越多,开始预见性的尝试使用,但是nginx和tomcat使用后发现一个问题后台无法登陆,nginx来回的跳转,真是日了狗了。了解了原来是3个tomcat之前没有进行session的共享。尝试自己解决一下,了解了memcached 可以实现sesson的共享。

 

三 .我的负载思路

     nginx 负责跳转下面3个tomcat,3个tomcat用memcached负责进行session的共享,3个tomcat的内容完全一样,现在我吧操作步骤一步一步告诉大家希望多分享交流

     关于centos下nginx  和 mysql,jdk安装我之前的博文有直接观看吧

     1.三个空的tomcat

 

      2.tomcat目录结构 

 

    3.加入memcached的lib的jar包(我用的mac本的UltraEdit)

      3.1ultraEdit-文件--浏览

        

      3.2 查看3个tomcat路径种lib是否有新加入的

        

 

       3.3 查看3个tomcat的conf中的server.xml文件的修改

         

       修改关闭端口 我的分别是

  1. tomcat1:18005
  2. tomcat2:28005
  3. tomcat3:38005

      修改连接端口 我的分别是

  1. tomcat1:18080
  2. tomcat2:28080
  3. tomcat3:38080 

    

 

     修改长链接端口我的分别是

  1. tomcat1:18009
  2. tomcat2:28009
  3. tomcat3:38009

     

     修改Engine 起对应的名称

  1. tomcat1     jvmRoute=“tomcat1”
  2. tomcat2     jvmRoute ="tomcat2"
  3. tomcat3     jvmRoute ="tomcat3"

   

 

 修改Context中  docBase 是对应webapp里面的项目名称,3个tomcat中都加入这样的代码

 <Context docBase="mfb" path="/mfb" reloadable="false" source="org.eclipse.jst.jee.server:mfb">
      <Manager  
			className="de.javakaffee.web.msm.MemcachedBackupSessionManager"  
			memcachedNodes="n1:127.0.0.1:11211"  
			sticky="false"  
			sessionBackupAsync="false"  
			lockingMode="uriPattern:/path1|/path2"  
			requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"  
			transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"/> 
      </Context>

 

访问后http://192.168.1.201:18080/mfb/manage/admin.jsp

 

访问后http://192.168.1.201:28080/mfb/manage/admin.jsp

 

访问后http://192.168.1.201:38080/mfb/manage/admin.jsp

 

   4.安装memcached

4.1查询命令

yum  search  memcached

 

 

 

4.2 安装命令

yum  -y install memcached

 

 4.3 命令帮助

  memcached –h

 

 注意:默认的端口是11211 

 

 4.3 加入service服务命令

 

chkconfig --level 2345 memcached on 

     以后就可以通过service memcached start|stop|restart等命令来启动、关闭、重启memcached服务。

 

 

 

5.nginx的配置

5.1进入nginx的conf路径

 

 

5.2创建gzip.conf写入

    gzip              on;  
    gzip_min_length      1000;  
    gzip_types         text/plain text/css application/x-javascript;  

 

5.3创建proxy.conf空文件(注意:Host $host:180;是根据我的nginx访问的端口来的因为我本机centos80端口已经占用了我改了下端口)

proxy_redirect          off;
proxy_set_header        Host $host:180;
proxy_set_header        X-Real-IP $remote_addr;
proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size    10m;
client_body_buffer_size 128k;
proxy_connect_timeout   300;
proxy_send_timeout      300;
proxy_read_timeout      300;
proxy_buffer_size       4k;
proxy_buffers           4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;

 5.4修改nginx.conf

#Nginxwindow
#user  niumd niumd;

#CPU2CPU
worker_processes  4;

#
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
error_log  logs/error.log  info;

#pid
pid        logs/nginx.pid;

events {
    #IOlinuxepollFreeBSDkqueuewindow
    #use epoll;
    
    #
    worker_connections  2048;
}

http {

    include       mime.types;
    include      proxy.conf;
    default_type  application/octet-stream;

		#
    #log_format  main  '$remote_addr - $remote_user [$time_local] $request '
    #                  '"$status" $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  off;
    access_log  logs/access.log;

    client_header_timeout  3m;
    client_body_timeout    3m;
    send_timeout           3m;
 
    client_header_buffer_size    1k;
    large_client_header_buffers  4 4k;

    sendfile        on;
    tcp_nopush      on;
    tcp_nodelay     on;

    #keepalive_timeout  75 20;

    include    gzip.conf;
    upstream localhost {
      #iptomcatsession
      #ip
      #ip_hash; 
      server localhost:18080;
      server localhost:28080;
      server localhost:38080;
     }

    server {
            listen       180;
            server_name  localhost;   

            location / {
            		proxy_connect_timeout   3;
            		proxy_send_timeout      30;
            		proxy_read_timeout      30;
                proxy_pass http://localhost;
            }
            
   }
}

  5.5 启动试试

    启动:

./nginx  

  关闭:

./nginx -s stop

 

 

 

三 .大功告成

1.启动nginx

2.启动mencached

3启动tomcat

 

 

 

 

关于tomcat的配置  和 nginx的配置附件可以下载

 

  • 描述: UltraEdit文件上传tomcatsesson共享的动画
  • 大小: 2.2 MB
0
2
分享到:
评论

相关推荐

    大语言模型生成控制参数详解:温度、Top-K与Top-P.md

    大语言模型生成控制参数详解:温度、Top-K与Top-P.md

    肿瘤微环境细胞检测数据集2.zip

    数据集介绍:肿瘤微环境细胞检测数据集 数据集名称:肿瘤微环境细胞检测数据集 图片规模: - 训练集:2,631张医学图像 - 验证集:251张医学图像 - 测试集:125张医学图像 细胞类别: - Fibroblast(成纤维细胞):肿瘤微环境中的基质细胞,参与肿瘤生长与转移过程 - Lymphocyte(淋巴细胞):免疫系统重要组成,反映肿瘤免疫微环境特征 - Tumor(肿瘤细胞):恶性肿瘤组织中的异常增殖细胞 标注体系: - YOLO格式标注,包含细胞位置与类别信息 - 医学影像来源于组织病理切片,包含多部位癌症样本 AI病理诊断系统开发: 支持构建癌症组织病理分析模型,实现肿瘤细胞与微环境成分的精准识别,辅助病理科医生提升诊断效率 肿瘤免疫治疗研究: 通过淋巴细胞分布密度分析,为免疫治疗响应预测模型提供关键数据支撑 医学影像算法研究: 适用于细胞级目标检测、微环境成分定量分析等计算机视觉任务,支持多目标跟踪等算法开发 数字病理教学系统: 可作为医学教育机构的教学素材,用于肿瘤微环境认知教学和病理检测AI模型训练 临床价值突出: 完整覆盖肿瘤微环境三大关键组分,包含癌变组织、免疫细胞和基质细胞,支持肿瘤演进机制研究 标注专业精准: 由病理专家参与标注验证,确保肿瘤细胞边界标注准确,支持高精度细胞定位需求 数据多样性丰富: 包含不同分化程度的肿瘤细胞样本,涵盖多种组织切片制备工艺的成像特征 工程适配性强: YOLO格式可直接适配主流检测框架,支持快速开展肿瘤检测模型训练与效果验证

    基于EKF的三架无人机协同定位移动目标的仿真分析

    内容概要:本文详细介绍了利用扩展卡尔曼滤波器(EKF)进行三架无人机协同定位移动目标的仿真研究。首先,建立了大地坐标系并定义了目标的状态向量为位置和速度[x, y, z, vx, vy, vz]。然后,构建了无人机的量测模型,通过被动雷达导引头获取目标的高低角和方位角。接着,设计了EKF的核心部分,包括状态转移矩阵F、观测矩阵H及其雅可比矩阵的计算。仿真过程中设置了蛇形机动轨迹的目标,并讨论了多无人机观测数据的时间对齐处理。结果显示,三机协同定位显著提高了定位精度,特别是在Z轴方向,均方根误差由单机的12米降低到5米以内。此外,还探讨了观测几何对定位精度的影响以及初始协方差矩阵P0的正确设置。 适合人群:从事无人机导航、定位算法研究的专业人士,以及对EKF有一定了解的研究人员。 使用场景及目标:适用于需要提高无人机编队对移动目标定位精度的应用场合,旨在通过优化EKF算法实现更精确的目标追踪。 其他说明:文中提供了详细的数学模型和代码片段,有助于读者深入理解EKF的工作原理及其实现细节。同时指出了一些常见的陷阱,如初始协方差矩阵不能设为全零等。

    PYTHON脚本,音频播放,截取,合并软件

    PYTHON脚本,音频播放,截取,合并软件。

    基于springboot+vue的汽车租赁管理系统(源码+数据库)166

    基于springboot+vue的汽车租赁管理系统:前端 vue、elementui,后端 maven、springmvc、spring、mybatis;角色分为管理员、用户;集成汽车信息浏览,在线租赁,还车等功能于一体的系统。 ## 功能介绍 ### 用户 - 基本操作:登录、注册、修改个人信息、查看基本资料 - 车辆信息模块:获取车辆列表、筛选车辆、查看车辆信息详情、点赞、拉踩、评论车辆、租赁、收藏车辆 - 系统公告模块:获取系统公告列表、查看系统公告详情 - 其他操作:获取轮播图列表、查看收藏列表 ### 管理员 - 基本操作:登录、修改密码、获取个人信息 - 用户管理:新增用户、获取用户列表、筛选用户信息、查看用户信息详情、修改用户信息、删除用户 - 车辆品牌管理:新增品牌、筛选品牌、修改品牌信息、删除品牌 - 车辆信息管理:筛选车辆、获取车辆信息列表、查看车辆信息详情、修改车辆信息、删除车辆信息、查看车辆评论 - 车辆颜色管理:筛选车辆颜色、新增车辆颜色、修改车辆颜色、删除车辆颜色 - 租赁订单管理:筛选订单、删除订单、审核租赁请求、修改订单信息、查看订单信息详情 - 还车信息管理:筛选还车信息、上传还车信息、查看还车信息详情、修改还车信息、删除还车信息 - 管理员管理:新增管理员、搜索管理员、查看管理员信息详情、修改管理员信息、删除管理员 ## 环境 - <b>IntelliJ IDEA 2021.3</b> - <b>Mysql 5.7.26</b> - <b>Node 14.14.0</b> - <b>JDK 1.8</b>

    基于springboot+vue的网上鲜花交易管理系统(源码+数据库)177

    基于springboot+vue的网上鲜花交易管理系统:前端 vue、elementui,后端 maven、springmvc、spring、mybatis;角色分为管理员,用户;集成商家,鲜花浏览,购物车等功能于一体的系统。 ## 功能介绍 ### 用户 - 基本功能:登录,注册,退出 - 网站首页:主导航栏,轮播图,鲜花游览推荐,商家展示 - 商家:商家列表展示,按店铺名和店铺地址模糊搜索,商家详情,评论 - 鲜花:鲜花列表展示,按名称、用途、花语、店铺名模糊搜索,鲜花详情,购物车,在线结算 - 其他功能:系统公告,在线客服,鲜花结束 - 个人中心:个人信息查看与修改,我的订单查询,我的修改维护,我的收藏列表 ### 管理员 - 用户管理:用户信息的增删改查,用户也可以在前台自行注册 - 商家管理:商家信息的增删改查,查看商家评论,评论回复,评论删除 - 鲜花分类管理:分类信息的增删改查 - 鲜花管理:鲜花信息的增删改查,图片上传,查看评论,评论回复,评论删除 - 系统管理:系统公告管理,在线客服,轮播图管理 - 订单管理:用户下单后,管理员查看用户订单,发货操作 ## 环境 - <b>IntelliJ IDEA 2021.3</b> - <b>Mysql 5.7.26</b> - <b>Tomcat 7.0.73</b> - <b>Node 14.14.0</b> - <b>JDK 1.8</b>

    基于springboot+vue的商城管理系统(源码+数据库)220

    基于springboot+vue的商城管理系统:前端 vue2、elementui,后端 maven、springmvc、spring、mybatis;角色分为管理员、用户;集成商品浏览、购物车、在线下单、订单查询等功能于一体的系统。 ## 功能介绍 ### 用户 - 基本功能:登录,注册,退出 - 网站首页:主导航栏,轮播图,商品搜索,推荐商品,热门商品 - 商品购买:商品列表浏览,商品详情,立即购买,加入购物车,收藏,在线付款(模拟) - 我的订单:订单列表查询,订单删除 - 其它功能:我的收藏,我的地址,在线客服 ### 管理员 - 商品分类管理:分类信息的增删改查,体育商品分类、衣服商品分类、鞋子商品分类、手机商品分类、电脑商品分类 - 用户管理:用户信息的增删改查,密码修改 - 订单管理:管理员查询用户的下单数据,按订单号查询订单 - 数据统计:折线统计,柱形统计,用户分布图 - 在线客服:查看用户的留言数据,回复操作 ## 环境 - <b>IntelliJ IDEA 2021.3</b> - <b>Mysql 5.7.26</b> - <b>Node 14.14.0</b> - <b>JDK 1.8</b>

    dac0d-main.zip

    dac0d-main.zip

    4轴码垛机械臂DIY指南:从硬件组装到智能控制的全面解析

    内容概要:本文详细介绍了4轴码垛机械臂的DIY过程,涵盖了从硬件组装到软件编程的各个步骤。首先,作者展示了如何利用提供的STEP模型文件和STL 3D打印文件进行机械臂的三维建模和实物组装,解释了四轴导轨结构及其控制原理。接着,深入探讨了固件和上位机软件的作用,包括固件的控制逻辑、调试方法以及上位机软件的使用方式。此外,还介绍了如何通过语音控制和图像处理技术扩展机械臂的功能,如实现语音指令响应和物体识别抓取。最后,总结了该项目的学习价值和潜在应用。 适合人群:对机器人技术和自动化感兴趣的DIY爱好者、学生和技术人员。 使用场景及目标:① 学习机械臂的基本构造和工作原理;② 掌握机械臂的硬件组装技巧;③ 编程实现机械臂的基本控制功能;④ 实现高级功能如语音控制和图像处理。 其他说明:文中提供了丰富的代码示例和实用技巧,帮助读者更好地理解和实践。无论是初学者还是有一定经验的技术人员都能从中受益。

    ### 南京邮电大学考研资料汇总:高分笔记与真题解析

    内容概要:本文档是针对南京邮电大学数学实验的资料汇总,主要分为高分笔记(讲义)和真题资料两大部分。高分笔记由上岸学长学姐结合自身经验、真题、考纲及教材精心编制,旨在帮助考生快速掌握核心重难点。笔记内容包括上岸经验分享、考点总结、推荐教材例题习题和思维导图。真题资料汇集了该校自2007年至2024年的历年硕士研究生入学考试初试试题及其参考答案,通过反复练习真题,考生可以更好地把握考试方向。此外,文档还提供了综合评价考试的面试模式和备考建议,包括面试流程、考核安排、常见问题及应对策略。 适合人群:准备报考南京邮电大学硕士研究生入学考试的考生,尤其是对通信、计算机等专业感兴趣的学生。 使用场景及目标:①帮助考生在备考期间高效复习,明确考试重点和难点;②通过真题练习加深对知识点的理解,熟悉考试题型;③为参加综合评价考试提供详细的面试指导,增强应试信心。 其他说明:文档不仅提供了丰富的理论知识和实践经验,还特别强调了复习方法的重要性,如合理规划复习时间、选择合适的复习资料等。同时,对于面试部分,文档给出了具体的面试流程和注意事项,有助于考生提前做好心理和技术准备。

    直流电机双闭环调速系统仿真建模及参数整定详解

    内容概要:本文详细介绍了直流电机双闭环调速系统的仿真建模及其参数整定方法。首先解释了双闭环的基本概念,即电流环作为内环,转速环作为外环,确保电机转速稳定且无明显波动。文中通过具体的公式推导和MATLAB/Simulink代码展示了电流环和转速环的比例积分(PI)控制器参数计算过程,强调了电流环响应速度快于转速环的重要性。同时,针对转速环引入了微分负反馈机制,有效抑制了超调现象。此外,文章还提供了多个实用技巧,如电流环和转速环的滤波时间设置、抗积分饱和处理以及仿真步长的选择,确保仿真的精确性和稳定性。 适用人群:适用于对直流电机控制系统有一定了解并希望深入掌握双闭环调速系统仿真建模的技术人员和研究人员。 使用场景及目标:①帮助读者理解双闭环调速系统的原理和参数整定方法;②指导读者在Simulink中搭建仿真模型并进行参数优化;③提供实际应用中的注意事项和技术难点解析,提高仿真实验的成功率。 其他说明:文章不仅提供了详细的理论推导和代码实现,还分享了许多实践经验,如参数选择的经验法则、常见错误规避等,使读者能够更好地理解和应用所学知识。

    【Robotics-TOOLBOX(机器人工具箱)源代码】RPP正逆运动学计算实例

    RPP正逆运动学计算实例

    基于ThinkPHP5.0.10制作零食商城,三端分离,前后端完全分离.zip

    基于ThinkPHP5.0.10制作零食商城,三端分离,前后端完全分离

    【无人机表演路径规划】基于Python的数学建模与3D可视化:无人机阵列螺旋运动及水面涟漪效果模拟

    内容概要:本文档介绍了一段基于 Python 的无人机表演路径生成代码,主要用于数学建模和路径规划的模拟。代码中定义了两个主要类:`DragonBallPath`用于生成无人机的螺旋运动轨迹、模拟水面涟漪效果并更新无人机的位置;`AnimationController`负责3D动态可视化的创建、视角设置以及动画的启动。通过参数方程、正弦函数和随机噪声分别实现了路径生成、波动效果和真实感增强。此外,代码考虑了性能优化,如减少显示数量以保证流畅性和使用高效可视化方法。还具有良好的扩展性,允许用户调整基础参数来自定义运动效果。 适合人群:对无人机编队飞行感兴趣的研究人员、开发者或爱好者,尤其是有一定 Python 编程基础和技术背景的人士。 使用场景及目标:①作为研究或教学工具,帮助理解无人机编队飞行的路径规划和数学建模;②为实际的无人机编队飞行表演提供理论依据和技术参考;③探索不同参数设置下无人机编队的表现形式。 其他说明:此代码仅为模拟用途,在实际部署时还需要无人机硬件控制接口、精确的坐标校准系统、实时通信协议和安全防护机制。建议在支持3D渲染的Python环境中运行,如Jupyter Notebook,并确保安装了必要的库(numpy、matplotlib)。

    2kW双向储能变换器PFCLLC结构的整流逆变模式切换与优化

    内容概要:本文详细介绍了基于PFCLLC结构的2kW双向储能变换器的设计与优化。首先探讨了整流模式下,单相PWM整流器和LLC谐振变换器的工作原理及其关键参数配置,强调了死区时间和谐振频率对系统性能的影响。接着讨论了逆变模式下,LLC作为升压逆变器的操作方法,特别关注了同步整流时序和模式切换的无缝衔接。文中提供了大量代码片段,展示了具体的实现细节和技术难点。此外,还分享了多个工程实践经验,如母线电容的选择、硬件缓启电路的重要性以及仿真与实测之间的差异处理。 适合人群:从事电力电子、新能源项目开发的技术人员,尤其是有一定嵌入式开发经验和电源设计背景的研发人员。 使用场景及目标:适用于需要高效双向能量转换的应用场合,如光伏储能系统、工业电源等。主要目标是提高系统的效率、可靠性和稳定性,同时减少波形失真和电磁干扰。 其他说明:文章不仅涵盖了理论分析,还包括大量的实际应用案例和调试技巧,有助于读者更好地理解和掌握双向储能变换器的设计与优化方法。

    CST与FDTD中贝塞尔光束仿真的全流程详解:从相位计算到光场分析

    内容概要:本文详细介绍了如何在CST和FDTD中进行贝塞尔光束的仿真。首先,通过MATLAB计算贝塞尔光束所需的相位分布,确保相位参数符合贝塞尔函数的零点条件。接着,在CST中建立模型,设置合适的边界条件和场源,导入相位数据并运行仿真。仿真完成后,利用Python对电场数据进行后处理,生成光强分布图。同时,文中还讨论了FDTD仿真中的注意事项,如网格尺寸和边界条件的选择。最后,通过对比CST和FDTD的仿真结果,探讨了两者的差异及其应用场景。 适合人群:从事光学仿真、光束控制以及相关科研工作的研究人员和技术人员。 使用场景及目标:①掌握贝塞尔光束的相位计算方法;②熟悉CST和FDTD中贝塞尔光束仿真的具体步骤;③理解两种仿真工具之间的差异及各自的优缺点。 其他说明:本文不仅提供了详细的仿真流程指导,还分享了许多实用的避坑技巧,帮助读者更好地理解和应用贝塞尔光束仿真技术。

    SpringBoot在线拍卖竞价拍卖竞拍系统源码+详细讲解视频教程+论文+软件环境+包远程安装配置.zip

    SpringBoot在线拍卖竞价拍卖竞拍系统源码+详细讲解视频教程+论文+软件环境+包远程安装配置

    COMSOL光学仿真中液晶分子与超表面联合调制相位的张量矩阵设置研究

    内容概要:本文详细介绍了如何在COMSOL中通过张量矩阵设置液晶分子(如向列相和胆甾相液晶)与超表面的联合调制相位。首先阐述了液晶分子和超表面的基本理论背景,然后具体讲解了在COMSOL中如何设置张量矩阵来描述液晶的介电特性及其空间分布,特别是针对不同类型的液晶分子(如向列相和胆甾相)。此外,还探讨了如何将液晶分子的各向异性特性与超表面微结构耦合,以实现复杂的相位调制效果。文中提供了具体的MATLAB代码片段用于定义介电张量和指向矢场,并讨论了仿真过程中需要注意的问题,如边界条件耦合和材料参数的动态调整。 适合人群:从事光学仿真、液晶材料研究以及超表面设计的研究人员和技术人员。 使用场景及目标:适用于希望深入了解液晶分子与超表面联合调制相位机制的研究者,旨在帮助他们掌握在COMSOL中实现这一过程的具体方法和技术细节,以便应用于实际项目,如可调谐透镜和AR/VR设备的设计。 其他说明:文中不仅提供了详细的理论解释和技术指导,还包括了一些实用的操作技巧和常见问题的解决方案,有助于提高仿真的成功率和效率。

    蓝色美人鱼儿童教学课件模板.pptx

    蓝色美人鱼儿童教学课件模板

Global site tag (gtag.js) - Google Analytics