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

[经验分享] Apache+tomcat实现负载均衡集群和session共享、tengine+tomcat实现web动静分离

[复制链接]

尚未签到

发表于 2018-12-3 10:41:31 | 显示全部楼层 |阅读模式
  
  一、tomcat简介
  Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。
Tomcat提供了一个Jasper编译器用以将JSP编译成对应的Servlet。TomcatServlet引擎通常与Apache或者其他Web服务器一起工作。除了用于开发过程中的调试以及那些对速度和事务处理只有很小要求的用户,很少会将Tomcat单独作为Web服务器。但随着版本的更新,正有越来越多的用户将其单独作为Web服务器用以那些对速度和可靠性有较高要求的环境中。由于Tomcat是使用Java开发的,所以它可以运行在任何一个装有JVM的不同操作系统之上。
  
二、实验环境
  系统环境:centos6.4-i386
  jdk:jdk-7u40-linux-i586.rpm
  tomcat:apache-tomcat-7.0.42
  nginx:tengine-1.5.1
  Apache:httpd-2.4.2
  三、搭建实验环境
  1.安装jdk
  
#rpm -ivh jdk-7u40-linux-i586.rpm
#vim /etc/profile.d/java.sh
export JAVA_HOME=/usr/java/latest
export PATH=$JAVA_HOME/bin:$PATH
# . /etc/profile.d/java.sh
# java -version  2.安装tomcat
  
# tar xf apache-tomcat-7.0.33.tar.gz -C /usr/local/
# cd /usr/local/
# ln -s apache-tomcat-7.0.33 tomcat
# vim /etc/profile.d/tomcat.sh
export CATALINA_HOME=/usr/local/tomcat
export PATH=$CATALINA_HOME/bin:$PATH
# . /etc/profile.d/tomcat.sh  添加服务脚本
  
[root@stu_yxm18 ~]# vim /etc/rc.d/init.d/tomcat
#!/bin/sh
# Tomcat init script for Linux.
#
# chkconfig: 2345 96 14
JAVA_OPTS='-Xms64m -Xmx128m'
JAVA_HOME=/usr/java/latest
CATALINA_HOME=/usr/local/tomcat
export JAVA_HOME CATALINA_HOME
exec $CATALINA_HOME/bin/catalina.sh $*  启动tomcat
[root@stu_yxm18 ~]# service tomcat start
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/java/latest
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar  http://blog.运维网.com/attachment/201310/092433752.png
  注:apache、nginx的安装在此不做演示,强烈建议编译安装!!!
  
  四、配置tomcat运行一个简单的jsp程序
  
# cd /usr/local/tomcat/conf/
*****备份主配置文件*****
# cp server.xml server.xml.bak
# vim server.xml
******修改主配置文件如下*****
******添加一个虚拟主机*****




******修改服务端口为80*****

******更改默认虚拟主机:注意前后对应*****
  提供一个jsp程序
  
# cd /usr/local/tomcat/
#mkdir yxmtctest
#[root@stu_yxm18 tomcat]# cd yxmtctest/
#mkdir -p WEB-INF/{class,lib}
#vim index.jsp


TomcatA

TomcatA


Session ID




Created on





#service tomcat stop #注:tomcat不支持restart
#service tomcat start  http://blog.运维网.com/attachment/201310/095307965.png
  五、Apache做反向代理,代理后端tomcat
  
  编译安装httpd-2.4.2
  
#tar xf httpd-2.4.2.tar.bz2
#ln -sv httpd-2.4.2 httpd
#cd httpd
#./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util  --enable-proxy --enable-proxy-http --enable-proxy-ajp
#make && make install  
  修改主配置文件
  
# vim /etc/httpd/httpd.conf
Include /etc/httpd/extra/mod_proxy.conf
# vim /etc/httpd/extra/mod_proxy.conf
ProxyVia On
ProxyRequests Off
ProxyPreserveHost Off

Order allow,deny
Allow from all

ProxyPass  /  ajp://172.16.15.23:8009/
ProxyPa***everse  /  ajp://172.16.15.23:8009/  
  注释:
  ProxyVia{On|Off|Full|Block}:用于控制在http首部是否使用Via;On表示每个请求和响应报文均添加Via。
  ProxyRequests{On|Off}:是否开启apache正向代理的功能。
  ProxyPreserveHost{On|Off}:如果启用此功能,代理会将用户请求报文中的Host:行发送给后端的服务器,而不再使用ProxyPass指定的服务器地址。如果想在反向代理中支持虚拟主机,则需要开启此项。
  ProxyPass/ajp://172.16.15.23:8009/#####使用的是ajp协议
ProxyPa***everse/ajp://172.16.15.23:8009/
  http://blog.运维网.com/attachment/201310/105508166.png
  六、Apache+tomcat基于mod_proxy模块构建tomcat负载均衡集群
  
# vim /etc/httpd/extra/mod_proxy.conf
ProxyVia Off
ProxyRequests Off
ProxyPreserveHost Off

BalancerMember ajp://172.16.15.18:8009 loadfactor=1
BalancerMember ajp://172.16.15.23:8009 loadfactor=1
ProxySet lbmethod=bytraffic

ProxyPass  /  balancer://yxm/    stickysession=JSESSIONID
ProxyPa***everse  /  balancer://yxm/  
  loadfactor=1#权重
  ProxySetlbmethod=bytraffic#调度算法
  
  在另一个tomcat节点上添加服务:主配置文件完全一样,为验证负载均衡效果jsp程序不一样。
  
  http://blog.运维网.com/attachment/201310/110010619.png
  http://blog.运维网.com/attachment/201310/103643499.png
  
  七、tengine+tomcat实现web动静分离
  注:tengine的安装在此不演示(编译安装)!!!
  修改nginx主配置文件
  
[root@nginx ~]# vim /etc/nginx/nginx.conf
user  nginx nginx;
worker_processes  2;
worker_rlimit_nofile 51200;
#error_log  logs/error.log;
#pid        logs/nginx.pid;
events {
use epoll;
worker_connections  51200;
}
http {
include       mime.types;
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  logs/access.log  main;
client_max_body_size 20m;
client_header_buffer_size 16k;
large_client_header_buffers 4 16k;
sendfile        on;
tcp_nopush     on;
keepalive_timeout  65;
gzip  on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_proxied   any;
gzip_http_version 1.1;
gzip_comp_level 3;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;
proxy_temp_path   /tmp/proxy_temp;
proxy_cache_path  /tmp/proxy_cache levels=1:2 keys_zone=cache_one:500m inactive=1d max_size=3g;
proxy_connect_timeout    50;
proxy_read_timeout       600;
proxy_send_timeout       600;
proxy_buffer_size        128k;
proxy_buffers           16 256k;
proxy_busy_buffers_size 512k;
proxy_temp_file_write_size 1024m;
proxy_next_upstream error timeout invalid_header http_500 http_503 http_404 http_502 http_504;
server {
listen       80;
server_name  www.yxm.com ;
access_log  logs/host.access.log  main;
location / {
proxy_pass http://172.16.15.14;
}
location ~* \.(|html|htm|jpg|jpeg|png|gif|bmp|swf|ico)$ {
proxy_pass http://172.16.15.18;
}
location ~* \.(jsp|css|do|php)$ {
proxy_pass http://172.16.15.23;
}
error_page   500 502 503 504  /50x.html;
location = /50x.html {
root   html;
}
}  重启nginx服务
  八、Apache+tomcat实现session共享
  配置后端tomcat服务器IP:172.16.15.18
  
# vim /usr/local/tomcat/conf/server.xml
  #注意添加的位置
















  在/usr/local/tomcat/yxmtctest/WEB-INF/创建web.xml文件
  vim/usr/local/tomcat/yxmtctest/WEB-INF/web.xml
  



~  将以上配置复制到172.16.15.23tomcat节点上注意修改IP地址
  
#scp /usr/local/tomcat/conf/server.xml  172.16.15.23:/usr/local/tomcat/conf
#scp /usr/local/tomcat/yxmtctest/WEB-INF/web.xml 172.16.15.23:/usr/local/tomcat/yxmtctest/WEB-INF/
#server tomcat stop
#server tomcat start  http://blog.运维网.com/attachment/201310/145655370.pnghttp://blog.运维网.com/attachment/201310/145719741.png
  看以看到两个SessionID完全一样!!!Session共享成功
  
  
  
  
  
  
  
  
  
  




运维网声明 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-642717-1-1.html 上篇帖子: java webservice开发和调用(jdk1.5+eclipse3.4 + tomcat5.5+axis1.4+xfire1.2.6) 下篇帖子: zabbix 通过jmx监控tomcat
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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