设为首页 收藏本站
查看: 1419|回复: 0

[经验分享] Apache+Tomcat实现负载均衡及集群(session同步)--三、动静分离(1)使用mod_jk

[复制链接]

尚未签到

发表于 2017-1-14 09:31:52 | 显示全部楼层 |阅读模式
  准备一个测试用的servlet小程序(见附件)

DSC0000.png
 

DSC0001.png
 
一个servlet,访问这个servlet会跳转到首页index.jsp,static中存放静态资源,把这个工程打成war包,放入到tomcat的webapps目录(ip为192.168.137.211),启动tomcat,访问一下

DSC0002.png
DSC0003.png
DSC0004.png
 
我们的页面还是很漂亮的
 
简述一下tomcat的结构
DSC0005.png


这个架构跟tomcat conf/server.xml中的配置大体上是一致的
 
默认的,我们在通过8080端口访问tomcat的时候,使用的是tomcat的http连接器,此连接器能提供静态和动态资源服务,tomcat还有其他连接器,比如ajp连接器,就是在跟Apache集成时用到的连接器
 
DSC0006.png
 
动静分离就是从上面的将所有请求都发送到tomcat演变到只将动态请求发送到tomcat,静态资源的请求留给apache处理
 
首先配置Apache
编辑Apache的主配置文件,进入Apache安装目录下的conf目录,编辑httpd.cfg文件
(这里说明一下,之前演示Apache安装过程时Apache是安装在 /usr/local/apache2/ 目录下的,而现在这台机器,Apache是安装在 /usr/local/apache/目录,所以细心的同学看到这里不要奇怪,只要进入到Apache安装目录下的conf目录即可)

DSC0007.png
 
Apache使用独立的模块来处理这种动态请求,包括mod_jk和mod_proxy.
如果下载的Apache安装包模块中不包含mod_jk,那么需要先下载并编译mod_jk,这里下载了tomcat-connectors-1.2.40-src.tar.gz,上传到/usr/local/目录,编译

DSC0008.png
 
解压缩

DSC0009.png
 
进入native目录

DSC00010.png
DSC00011.png
DSC00012.png
 
DSC00013.png
 
DSC00014.png
 
 
 

要使这些模块工作,首先得加载进来
DSC00015.png
 
ServerRoot指令指定了Apache查找静态资源的目录

DSC00016.png
 
第一行,LoadModule指令,加载mod_jk模块,这些模块存放于conf/modules目录下
第七行,IfModule指令,判断是否加载了模块,模块名称为jk_module
第二行到第六行的指令都是mod_jk模块提供的
JkWorkersFile    指定worker配置文件的路径,要想让Apache把动态请求转发给tomcat,得告诉Apache tomcat的位置,包括ip、端口等,workers.properties这个配置文件就是用于配置这些信息的
JkLogFile    指定日志文件所在位置
JkLogLevel    指定日志输出级别
JkMount    指定请求转发规则,mod_jk模块得决定哪些是动态资源,然后才能将动态资源转发给tomcat,/*表示所有请求,即将所有请求交给名称为worker1的tomcat处理
JkUnMount    指定不转发的请求的规则,即哪些请求不转发给tomcat,静态资源是放在shade/static目录下的,所以配置/shade/static路径下的所有请求不转发
 
JkMount、JkMount指令在处理时会有顺序,从上到下,如果规则满足,继续往下匹配,直到第一个不满足的规则才停止
 
接下来配置worker.properties,即告诉Apache请求转发到的tomcat在哪里

DSC00017.png
 
加入如下配置

DSC00018.png
 
worker.list配置worker的名称,这里暂时配置一个
worker.workerName.xxx配置每一个worker的属性,这里workerName就是worker.list后面配置的名称,worker指tomcat实例,可以有多个tomcat实例,后面配置负载均衡的时候会配置,这里暂时配置一个worker
 
type:指定tomcat连接器的类型,必须为ajp13,在配置负载均衡时还有一种,lb
host:tomcat运行的主机
port:tomcat的ajp连接器监听的端口
cachesize:apache服务器是多线程的,tomcat能够利用这一优势来维持一定数量的连接作为缓存。根据用户的多少来配置一个合适缓存连接数量有助于提高性能。这里配置为5
 
修改tomcat的conf/server.xml,确保ajpconnector监听在8009端口,Engine元素的jvmRouter属性的值配置为worker1,即之前在worker.properties文件中配置的tomcat名称

DSC00019.png
 
现在将tomcat的webapps/shade目录下的static目录删除,然后启动tomcat,用8080端口访问下

DSC00020.png
DSC00021.png
 
静态资源已经访问不到了
接着在Apache安装目录下的htdocs目录下创建shade目录,将存放静态资源的static目录拷贝进来

DSC00022.png
 
启动Apache,然后访问,注意,确保安装tomcat的服务器的8009端口打开

DSC00023.png
 
注意,这里访问的是Apache所在的服务器,80端口
 
至此,已经实现动态资源和静态资源的分离

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-328186-1-1.html 上篇帖子: Apache common-pool, common-dbcp源码解读与对象池原理剖析 【转载】 下篇帖子: 深入理解Apache Mina (2)---- 与IoFilter相关的几个类
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表