服务器集群

---tomcat+mod_jk+apache----

  1. tomcat与Apache 服务器的关系;

    http://blog.csdn.net/huangtingyu/article/details/3429789

         --apache仅仅是http服务器,只支持静态的网页.

2.0.0.0.0是全零网络,代表默认网络

--apache(OS 10013)以一种访问权限不允许的方式做了一个访问套接字的尝试 ... apache的默认端口(80)被占用导致.

window 查看端口使用情况:

查看所有-->netstat -ano

查看指定-->netstat -aon|findstr "9050"

查看pid对应的进程-->tasklist|findstr "2016"

结束该进程-->taskkill /f /t /im tor.exe


/**

chrome 的默认非安全端口.

绿色版的tomcat启动 startup.bat 添加-->SET "JAVA_HOME=D:\jdk"

AJP:向包协议 AJP是为Tomcat与HTTP服务器之间通信而定制的协议,能提供较高的通信速度和效率

**/

3.Tomcat服务器与其他HTTP服务器之间通过专门的插件来通信(应该把JK插件安置在对方的HTTP服务器上。当HTTP服务器接收到客 户请求时,它会通过JK插件来过滤URL,JK插件根据预先配置好的URL映射信息,决定是否要把客户请求转发给Tomcat服务器处理)

4.开始--->

    1.添加与aprache对应版本的mod_jk到Apache中(一般复制到modules中)

    2.httpd.conf-->include conf/mod_jk.conf 

       mod_jk.conf -->JkWorkersFile conf/workers.properties

/*

        LoadModule jk_module modules/mod_jk.so

        JkWorkersFile conf/workers.properties

        JkMount /*.jsp controller//设置对不同的请求的分发规则.

*/

 3.      workers.properties

/*

worker.controller.sticky_session=false #session是否是可黏贴的

/*

true表示会话具有粘性。意味着用户和1开始会话,以后用户从浏览器A发出的请求只要处于同一个会话中,负载均衡器就会始终让1来处理请求。这时候,集群不会进行会话复制。默认为false。前者为false,时候,后者的设置没什么影响。如果前者为true,后者也为true时候,表示始终连接。比如1异常终止,那么,服务端会返回500的错误。False的话,就发给2了,有可能不存在会话信息。

*/

worker.controller.sticky_session_force=1

#worker.controller.sticky_session=1

#有关session的共享(具体看下面官方的参数说明)

#========tomcat1========

worker.tomcat1.port=8009    #ajp13 端口号,在tomcat下server.xml配置,默认8009 对应如下:

#<Connector port="8009" protocol="AJP/1.3" redirectPort="8443"/>

worker.tomcat1.host=localhost  #tomcat的主机地址,如不为本机,请填写ip地址

worker.tomcat1.type=ajp13

worker.tomcat1.lbfactor=2   #server的加权比重,值越高,分得的请求越多


#========tomcat2========

worker.tomcat2.port=8099      #ajp13 端口号,在tomcat下server.xml配置,默认8009

worker.tomcat2.host=localhost  #tomcat的主机地址,如不为本机,请填写ip地址

worker.tomcat2.type=ajp13

worker.tomcat2.lbfactor = 2   #server的加权比重,值越高,分得的请求越多


#========controller,负载均衡控制器========

worker.list = controller,tomcat1,tomcat2 

worker.controller.type=lb

worker.controller.balance_workers=tomcat1,tomcat2   #指定分担请求的tomcat

*/

配置tomcat服务器:

<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">     

<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>


jvmRoute名称

两个Tomcat配置文件Host节点的域名配置必须一样,server.xml中的jvmRoute名称必须和worker.properties中的tomcat实例名称一致,不然无法实现session_stricky。

如果不想实现粘性session, jvmRoute可以不配制。

如果不想实现session复制,Cluster配制的注释就无需去掉

测试项目-->

记得加<distributable/>否则会报:

context manager doesn't exist:localhost#/

自然集群也不会成功.


总结:看上面的文件组织,其实都可以放在httpd.conf中的,分开当然更易管理,

负载均衡:(软件实现):用一个前端控制器来分发请求到对应的服务器

在work.properties文件中添加了一个配置了AJP监听的glssFish也可以与tomcat同时工作(session共享待实现..)



----------------

sticky_session           sticky_session_force           结论

0                                   0                                            session无黏性,session会复制

0                                   1                                            session无黏性,session会复制

1                                   0                                            session有粘性(非强制),session会复制

1                                   1                                            session有粘性(强制),session没必要再复制(此处有争议,待深入研



参考:

具体参数说明: http://tomcat.apache.org/connectors-doc/reference/workers.html

步骤:http://www.iteye.com/topic/1017961  ,http://o-oand0-0.iteye.com/blog/1328578 , http://kzpkzp.blog.163.com/blog/static/16869581820105132580272/ 

mod_jk vs mod_proxy http://sisopipo.com/blog/archives/258 

mod_jk:https://tomcat.apache.org/tomcat-3.3-doc/mod_jk-howto.html 

//mod_jk_proxy  待研究..




转载于:https://my.oschina.net/fuckmylife0/blog/313232

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值