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

[经验分享] tomcat基于Nginx、apache、以及第三方模块的负载均衡

[复制链接]

尚未签到

发表于 2018-12-6 13:19:03 | 显示全部楼层 |阅读模式

tomcat基础概念及基于Nginx、apache、以及第三方模块的负载均衡



【背景】
   客户端动态:是由客户端请求,服务器端把源代码原封不动的发给客户端,然后客户端的浏览器来解析。但是这样存在的弊端就是,如果C语言编译过,不是所有的客户端平台都和C编译的平台相同。那么其他的用户就没办使用。而java是基于客户端的虚拟主机运行的。客户端只要安装了java虚拟机。不管使用的什么平台,都会通过java虚拟磨平底层架构的区别。这样只要服务器编译,客户端运行即可。
程序接口:有开发接口,和运行接口。这样就实现了,一次开发到处运行。
存在问题:1.客户端运行不安全,万一下载到病毒,绕过应用级,后果很严重。2:容易被反编译,代码容易被获取。
于是之后又产生了服务器端的动态:也就是基于CGI协议的实现, 这是一种更安全的协议。web是充当一个反向代理的方式来实现的。
【java的技术体系】

JAVA的技术体系由四个组成部分:
    java程序设计语言:
    java应用程序接口:(API
    Java class类文件格式:
    java 虚拟机
【java的实现过程】

JAVA的底层实现过程:
通常一个大的应用程序,里面包含很多小的java程序。他们想要运行就必须先通过JAVA编译器编译,编译的过程就是把java语言变成类文件(*.class),也就是字节码。但是JAVA程序想要被运行,必须运行在JVM上。但是一个程序被运行,还需要其依赖的类。这时就需要在依赖的jAVA虚拟机中,有一个类加载器,这个类加载器把Java程序需要的类,加载到虚拟机上。这样一个JAVA就可以实现在虚拟机上运行了。但是我们的可以查看到java程序处理的结果,还需要我们的物理机通过系统调用或者库调用,实现最终终端java程序的效果。
http://s3.运维网.com/wyfs02/M01/58/F6/wKioL1TCM-jBeSSIAAE_WZHNr3c917.jpg



【基于nginx的负载均衡】

lftp 172.16.0.1:/pub/Sources/6.x86_64/jdk> mget jdk-7u67-linux-x64.rpm  // 下载jdk程序包
126857158 bytes transferred in 14 seconds (8.42M/s)                        
lftp 172.16.0.1:/pub/Sources/6.x86_64/jdk> bye     
[root@localhost ~ ]# ls
anaconda-ks.cfg  apache-tomcat-7.0.55.tar.gz  install.log install.log.syslog  jdk-7u67-linux-x
[root@localhost~ ]# ls      
anaconda-ks.cfg              install.log         jdk-7u67-linux-x64.rpm
apache-tomcat-7.0.55.tar.gz  install.log.syslog
[root@localhost ~ ]#rpm -ivh jdk-7u67-linux-x64.rpm
Preparing...               ########################################### [100%]
   1:jdk                   ########################################### [100%]
为了让java可以运行起来,我们需要为java添加一个环境变量;JAVA_HOME
注意在;这个JAVA_HOME.就是我们安装的jdk的文件位置。我们使用最新的一个,也就是
JAVA_HOME-->
/usr/java/latest

[root@localhost jdk1.7.0_67 ]# cd /etc/profile.d/
[root@localhost profile.d ]# vim java.sh
  1 export JAVA_HOME=/usr/java/latest
  2 export PATH=$JAVA_HOME/bin:$PATH[root@localhost profile.d ]# printenv   //重读环境变量,查看生成的变量HOSTNAME=localhost.localdomain
TERM=xterm
SHELL=/bin/bash
HISTSIZE=1000
SSH_CLIENT=172.16.250.222
53438 22
QTDIR=/usr/lib64/qt-3.3
QTINC=/usr/lib64/qt-3.3/include
SSH_TTY=/dev/pts/0
USER=root[root@localhost ~ ]# java -version     //查看java版本,观察是否正常
java version "1.7.0_67" Java(TM) SE Runtime
Environment (build 1.7.0_67-b01) Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)#################################部署tomcat ##########################################
tar xf apache-tomcat-7.0.55.tar.gz  -C /usr/local
Ln
-sv apache-tomcat-7.0.55 tmocat
[root@localhost profile.d ]# vim tomcat.sh  //或者tomcat.sh 添加tomcat的环境变量
  1 export CATALINA_HOME=/usr/local/tomcat
  2 export PATH=$CATALINA_HOME/bin:$PATH
####################################重读路径文件#######################################
#. /etc/profie.d/tomcat.sh
[root@localhost bin]# . /etc/profile.d/tomcat.sh
[root@localhostbin ]# catalina.sh start
#################其他节点相同操作,布置不同的显示页面,便于查看效果####################################################配置基于Nginx的负载均衡实验########################################

在http后端端定义upstream组。
[root@node1 nginx ]# vim nginx.conf
36     #gzip on;
37
38    upstream tcsrvs {
39        server 192.168.0.104:8080;
40        server 192.168.0.103:8080;
41     }#################################### 定义前端引用############################################
[root@node1 conf.d ]#vim default.conf
  4 server {
  5    listen       80 default_server;
  6    server_name  _;    :x
12    location / {
13    #rewrite /(.*) /bbs/$1 break;
14       # root   /usr/share/nginx/html/;
15        index  index.html index.htm;
16        proxy_pass http://tcsrvs;
17     }重启测试访问NGINX


  【基于apache的负载均衡】
httpd配置文件如下配置,但是要把中心主机关闭,开启虚拟主机。
#vim /etc/httpd/conf/httpd.conf
  1 NameVirtualHost*:80
  2               ####定义的负载均衡的后端主机组
  3    BalancerMember  loadfactor=1   各后端主机
  4    BalancerMember http://192.168.0.103:80 loadfactor=1
  5 #  ProxySet lbmethod=byrequests
  6
  7
  8     ServerName www.stu11.com
  9     ErrorLog logs/error_log
10     CustomLog logs/access_log common
11     ProxyVia On
12     ProxyRequests OFF
13     proxypreserveHost On
14                                   ####定义访问控制限为all
15     Order deny,allow
16     Allow from all
17     
18     Proxypass /status !
19     ProxyPass / balancer://tcsrvs/
20     proxypa***everse / balancer://tcsrvs/  ####引用定义的组
21     
22     Order deny,allow
23     Allow from all
24     
25 【使用apache基于ajp协议实现负载均衡配置文件如下】
  1 NameVirtualHost*:80
  2
  3    BalancerMember ajp://192.168.0.104:8009 loadfactor=1
  4    BalancerMember http://192.168.0.103:8009 loadfactor=1
  5 #  ProxySet lbmethod=byrequests
  6
  7
  8     ServerName www.stu11.com
  9     ErrorLog logs/error_log
10     CustomLog logs/access_log common
11     ProxyVia On
12     ProxyRequests OFF
13     proxypreserveHost On
14     
15     Order deny,allow
16     Allow from all
17     
18     Proxypass /status !
19     ProxyPass / balancer://tcsrvs/
20     proxypa***everse / balancer://tcsrvs/
21     
22     Order deny,allow
23     Allow from all
24     
25

【制定管理页面不代理】

1 NameVirtualHost *:80
  2
  3    BalancerMember  loadfactor=1
  4    BalancerMember http://192.168.0.103:80 loadfactor=1
  5 #  ProxySet lbmethod=byrequests
  6
  7
  8     ServerName www.stu11.com
  9     ErrorLog logs/error_log
10     CustomLog logs/access_log common
11     ProxyVia On
12     ProxyRequests OFF
13     proxypreserveHost On
14     
15     Order deny,allow
16     Allow from all
17     
18      ####定义管理页面
19     SetHandler balancer-manager
20     Proxypass !                  ###不给于代理  
21     Order Deny,Allow
22     ALLow from all
23     
24     Proxypass /status !
25     ProxyPass / balancer://tcsrvs/
26     proxypa***everse / balancer://tcsrvs/
27      
28     Order deny,allow
29     Allow from all
30     
31 http://s3.运维网.com/wyfs02/M01/58/F9/wKiom1TCOH_Sfpi-AAFm8TQYVsU996.jpg


【基于第三方模块mod_jk实现负载均衡】
[root@node1 conf.d
]# vim workers.propeties
  1 worker.list=tcsrvs,StatA
  2 worker.TomcatA.port=8009
  3 worker.TomcatA.host=172.16.249.11
  4 worker.TomcatA.type=ajp13
  5 worker.TomcatA.lbfactor=1
  6
  7 worker.TomcatB.port=8009
  8 worker.TomcatB.host=172.16.249.12
  9 worker.TomcatB.type=ajp13
10 worker.TomcatB.lbfactor=1
11 worker.tcsrvs.type=lb
12 worker.tcsrvs.sticky_session=1
13
worker.tcsrvs.balance_workers=TomcatA,TomcatB
14 worker.statA.type=status
[root@node1 conf.d]# vim mod_jk.conf
  1 Loadmodule jk_module modules/mod_jk.so
  2 JkWorkersFile /etc/httpd/conf.d/workers.propeties
  3 JklogFile logs/mod_jk.log
  4 JklogLevel info
  5 JkMOunt /status !
  6 JkMount /jk-status StatA
  7 JkMount /* tcsrvshttp://s3.运维网.com/wyfs02/M02/58/F6/wKioL1TCOhmySOqUAADOfkd02Lk890.jpg
http://s3.运维网.com/wyfs02/M02/58/F9/wKiom1TCOVzh9ZMlAADskdw9lE8760.jpg




































































































运维网声明 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-644022-1-1.html 上篇帖子: 一步一步搭建apache+tomcat 负载均衡集群 下篇帖子: Tomcat高级应用(添加虚拟主机及优化)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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