Chinaunix首页 | 论坛 | 博客
  • 博客访问: 864902
  • 博文数量: 72
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1693
  • 用 户 组: 普通用户
  • 注册时间: 2014-08-04 15:53
个人简介

主要从事Linux,云原生架构改造,服务网格,ELK,python,golang等相关技术。

文章分类

全部博文(72)

文章存档

2015年(52)

2014年(20)

分类: 架构设计与优化

2015-03-13 21:23:46

系统环境: RHEL6 x86-64 selinux and iptables disabled

1.apache2.2.6+jdk1.6+tomcat6的安装

java环境的搭建:
[root@vm2 mnt]# ls
apache-tomcat-7.0.37.tar.gz  jdk-6u32-linux-x64.bin
[root@vm2 mnt]# chmod +x jdk-6u32-linux-x64.bin 
[root@vm2 mnt]# ./jdk-6u32-linux-x64.bin
[root@vm2 mnt]# mv jdk1.6.0_32/ /usr/local/jdk
[root@vm2 mnt]# vim /etc/profile
export JAVA_HOME=/usr/local/jdk
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$PATH:$JAVA_HOME/bin
[root@vm2 mnt]# source /etc/profile

tomcat的安装:
[root@vm2 mnt]# tar zxf apache-tomcat-7.0.37.tar.gz -C /usr/local/
[root@vm2 mnt]# cd /usr/local/
[root@vm2 local]# cd tomcat/bin/
[root@vm2 bin]# ./startup.sh
[root@vm2 bin]# netstat -antlp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name            
tcp        0      0 ::ffff:127.0.0.1:8005       :::*                        LISTEN      1147/java           
tcp        0      0 :::8009                     :::*                        LISTEN      1147/java           
tcp        0      0 :::8080                     :::*                        LISTEN      1147/java           
[root@vm2 bin]# iptables -F
我们在浏览器中输入:192.168.1.3:8080,显示下面页面表示成功:

2.nginx和tomcat的整合
[root@vm2 ROOT]# nginx
[root@vm2 ROOT]# curl -I localhost
HTTP/1.1 502 Bad Gateway
Server: nginx/
Date: Fri, 13 Mar 2015 04:05:10 GMT
Content-Type: text/html
Content-Length: 537
Connection: keep-alive
ETag: "55013549-219"
[root@vm2 ~]# vim /usr/local/lnmp/nginx/conf/nginx.conf     #添加下面内容
  1. location / {
  2. root /usr/local/tomcat/webapps/ROOT;
  3. index index.jsp index.html index.htm;
  4. }

  5. location ~ \.jsp$ {
  6. proxy_pass
  7. }
[root@vm2 ~]# nginx -s reload
这时我们可以做测试了!





3.接下来我们做nginx与tomcat负载均衡:
另外开启一台一样配置(jdk、apache-tomcat)的虚拟机vm4(192.168.1.4)
通过vm2的nginx去管理vm4的tomcat实现负载均衡

首先我们必须重新编译安装nginx,加上nginx-sticky-module-1.0组件
[root@vm2 mnt]# tar zxf nginx-sticky-module-1.0.tar.gz
[root@vm2 nginx-1.4.2]# make clean
[root@vm2 nginx-1.4.2]# ./configure --prefix=/usr/local/lnmp/nginx --with-http_ssl_module --add-module=/mnt/nginx-sticky-module-1.0
[root@vm2 nginx-1.4.2]# make && make install
[root@vm2 nginx-1.4.2]# nginx -t
[root@vm2 nginx-1.4.2]# nginx
[root@vm2 ~]# vim /usr/local/lnmp/nginx/conf/nginx.conf
  1. user nginx nginx; //这里是他所属的用户和组
  2. worker_processes 2; //这里是他的闲置个数

  3. #error_log logs/error.log;
  4. #error_log logs/error.log notice;
  5. #error_log logs/error.log info;


  6. #pid logs/nginx.pid;


  7. events {
  8.         use epoll; //nginx的高性能模式
  9.     worker_connections 1024;
  10. }

  11. http {
  12.         upstream tomcatcluster {               //集群管理,第一台主机和第二台的tomcat
  13.                                                //配置相同,并且两台tomcat都保持开启
  14.                                                //两台机器的都必须有java环境,注意/etc/profile
  15.         sticky; //nginx捻切位
  16.         server 192.168.0.112:8080;
  17.         server 192.168.0.122:8080;
  18.         }
  19.     include mime.types;
  20.     default_type application/octet-stream;

  21. #access_log logs/host.access.log main;


  22.         location / {
  23.             root /usr/local/tomcat/webapps/ROOT; //发布目录
  24.             index test.jsp index.html index.htm; //发布页
  25.         }

  26.       location ~ \.jsp$ {
  27.             proxy_pass http://tomcatcluster; //默认的负载集群
  28.         }


  29.         # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
  30.         #
  31.         #location ~ \.php$ {
  32.         # root html;
  33.         # fastcgi_pass 127.0.0.1:9000;
  34.         # fastcgi_index index.php;
  35.         # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
  36.         # include fastcgi_params;
  37.         #}
  38.         .....
[root@vm2 ~]# nginx -s reload
[root@vm2 ~]#cd /usr/local/lnmp/nginx/logs/          //该目录为nginx的日志发布目录

在两台主机上都加入测试页面:
[root@vm2 ~]# vim /usr/local/tomcat/webapps/ROOT/test.jsp
The time is: <%= new java.util.Date() %>
[root@vm2 ~]# scp /usr/local/tomcat/webapps/ROOT/test.jsp 192.168.1.4:/usr/local/tomcat/webapps/ROOT/
开启服务:
[root@vm2 ~]# /usr/local/tomcat/bin/startup.sh
[root@vm4 ~]# /usr/local/tomcat/bin/startup.sh
接下来进行测试:192.168.1.3/test.jsp

[hy@hy updata]$ ls
kryo-1.03.jar
kryo-serializers-0.8.jar
memcached-2.5.jar
memcached-session-manager-1.5.1.jar
memcached-session-manager-tc6-1.5.1.jar
memcached-session-manager-tc7-1.5.1.jar
minlog-1.2.jar
msm-kryo-serializer-1.5.1.jar
reflectasm-0.9.jar
[hy@hy updata]$ scp * root@192.168.1.3:/usr/local/tomcat/lib
[hy@hy updata]$ scp * root@192.168.1.4:/usr/local/tomcat/lib
[root@vm2 lib]# rm -fr memcached-session-manager-tc6-1.5.1.jar 
[root@vm4 lib]# rm -fr memcached-session-manager-tc6-1.5.1.jar
[root@vm2 bin]# ./shutdown.sh         #停掉任意一个主机的tomcat服务,这里我们shutdown vm2的
查看tomcat的日志文件,我们发现此时vm2 tomcat已经停止了

这时我们去刷新我们的测试页,已经由vm4接管服务了:

这时我们看到的负载搭建成功!





阅读(4140) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~