百独托管7500 紫田网络超高转化播放器收cps[推荐]速盾CDN 免实名免备防屏蔽阿里云 爆款特卖9.9元封顶提升alexa、IP流量7Q5团队
【腾讯云】中小企福利专场【腾讯云】多款产品1折起高防 随时退换 好耶数据小飞国外网赚带你月入万元炎黄网络4H4G10M 99每月
香港带宽CN2/美国站群优惠中客数据中心 服务器租用联盟系统移动广告平台 中易企业专场腾讯云服务器2.5折九九数据 工信部正规资质
腾讯云新用户大礼包代金券高价收cpa注册量高价展示【腾讯云】2核2G/9.93起租服务器找45互联 随时退换阿里云 短信服务 验证秒达

[Unix/Linux] 快速搭建Nginx+Tomcat+Session 高性能群集环境 [复制链接]
查看:962 | 回复:5

154

主题

671

帖子

586

积分

落伍者(一心一意)

Rank: 1

贡献
28
鲜花
1
注册时间
2013-4-4

落伍手机绑定

发表于 2013-4-5 15:40:27 | |阅读模式 来自 中国广东广州
环境:前端nginx做分发(无PHP环境),后端两台tomcat分别为:
nginx:192.168.3.89 www.tvvcd.com
tomcat1:192.168.3.73
tomcat2:192.168.3.78

一、前端Nginx配置
1.前端nginx安装必备的开发包
yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel

2.同步系统时间:
#vim /etc/ntp.conf  //添加下面三行内容(19行下面添加)

server 3.cn.pool.ntp.org
server 3.asia.pool.ntp.org
server 0.asia.pool.ntp.org

# service ntpd stop
#ntpdate  cn.pool.ntp.org  //更新时间
#service ntpd start
#chkconfig ntpd on


3.安装pcre包和zlib以支持重写,正则以及网页压缩
pcre的安装
# unzip pcre-8.21.zip
# ./configure
# make && make install

4.Nginx的安装,给nginx安装jvmroute模块
# groupadd www
# useradd -g www -s /sbin/nologin www
# mkdir /usr/local/webserver/nginx/logs -p
# tar xvf nginx-upstream-jvm-route-0.1.tar.gz
# tar xvf nginx-1.0.11.tar.gz
# cd nginx-1.0.11
# patch -p0 < ../nginx_upstream_jvm_route/jvm_route.patch
# ./configure --prefix=/usr/local/webserver/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --user=www --group=www --with-http_ssl_module --with-http_stub_status_module --with-http_gzip_static_module --add-module=../nginx_upstream_jvm_route/
# make && make install

# vim /etc/nginx/nginx.conf
user  www www;
worker_processes 8;
error_log  /usr/local/webserver/nginx/logs/web-error.log  crit;
pid        /usr/local/webserver/nginx/nginx.pid;

#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 51200;
events
    {
        use epoll;
        worker_connections 51200;
    }

http
    {
        include       mime.types;
        default_type  application/octet-stream;
        #charset gb2312
        server_names_hash_bucket_size 128;
        client_header_buffer_size 32k;
        large_client_header_buffers 4 32k;
        client_max_body_size     10m;
        client_body_buffer_size  128k;
        proxy_connect_timeout    600;
        proxy_read_timeout       600;
        proxy_send_timeout       600;
        proxy_buffer_size        8k;
        proxy_buffers            4 32k;
        proxy_busy_buffers_size 64k;
        proxy_temp_file_write_size 64k;

        sendfile on;
        tcp_nopush     on;
        keepalive_timeout 60;
        tcp_nodelay on;

        gzip on;
        gzip_min_length  1k;
        gzip_buffers     4 16k;
        gzip_http_version 1.0;
        gzip_comp_level 2;
        gzip_types       text/plain application/x-javascript text/css application/xml;
        gzip_vary on;

        #limit_zone  crawler  $binary_remote_addr  10m;

        upstream  tomcat {
               server 192.168.3.73:8080 srun_id=tomcat1;  
               server 192.168.3.78:8080 srun_id=tomcat2;  
               jvm_route $cookie_JSESSIONID|sessionid reverse;
        }

server
    {
    listen       80;
    server_name www.tvvcd.com;
        index index.html index.htm index.jsp default.jsp index.do default.do;
#       root /usr/local/tomcat/webapps/test/;

        if ($host = 'tvvcd.com' )
        {

                rewrite ^/(.*)$ http://www.tvvcd.com/$1 permanent;   
        
        }
        if (-d $request_filename)
        
        {
   
                rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;
   
        }

        location ~ \.(jsp|jspx|do)?$
        {        
        proxy_redirect off;
        proxy_set_header Host  $host;
        proxy_set_header   X-Forwarded-For  $remote_addr;
        proxy_pass http://tomcat;
        }

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$

        {

                expires 30d;

        }

        location ~ .*\.(js|css)?$

        {

                expires 1h;

        }
     log_format  access  '$remote_addr - $remote_user [$time_local] "$request" '
             '$status $body_bytes_sent "$http_referer" '
             '"$http_user_agent" $http_x_forwarded_for';
     access_log  /usr/local/webserver/nginx/logs/web-access.log  access;

    }
  server
  {
    listen  80;
    server_name  www.tvvcd.com;

    location /stub_status {
    stub_status on;
    access_log   off;
    }
  }
}


到/usr/bin目录下,把原用的java,javac文件删除:
# rm -rf /usr/bin/java
# rm -rf /usr/bin/javac
在/usr/bin 下建立 软连接 java
# ln -sv /usr/local/jdk1.6.0_29/bin/java /usr/bin/java
# ln -sv /usr/local/jdk1.6.0_29/bin/javac /usr/bin/javac
# java -version
java version "1.6.0_29"
Java(TM) SE Runtime Environment (build 1.6.0_29-b11)
Java HotSpot(TM) Client VM (build 20.4-b02, mixed mode, sharing)
# javac -version
javac 1.6.0_29

3.为了方便下在的工作建立两个软链接:
# ln -sv /usr/local/jdk1.6.0_29 /usr/local/jdk
# ln -sv /usr/local/jdk1.6.0_29/jre /usr/local/jre

4.Tomcat的安装
# tar xvf apache-tomcat-6.0.33.tar.gz
# mv apache-tomcat-6.0.33 /usr/local/tomcat
设置环境变量:
# vim ~/.bash_profile //仅当前用户有效
#Set  Environment  by NetSeek
JAVA_HOME=/usr/local/jdk
export JAVA_HOME
JRE_HOME=/usr/local/jre
export JRE_HOME
CLASSPATH=/usr=/usr/local/tomcat/common/lib/:/usr/local/jdk/lib:/usr/local/jre/lib
export CLASSPATH
PATH=$PATH:/usr/local/tomcat/bin/:/usr/local/jdk/bin:/usr/local/jre/bin
export PATH
TOMCAT_HOME=/usr/local/tomcat
export TOMCAT_HOME
# source ~/.bash_profile

5.启动tomcat以检查是否存在错误:
# cd /usr/local/tomcat/bin/
# ./startup.sh
http://IP地址:8080 可以看到猫头:)成功了。
在另一台机器上也安装tomcat 并配置好。
三、tomcat集群配置,session 同步配置:
1.tomca1 tomcat 2 在不同机器上
Tomcat 1  (IP: 192.168.3.73)   
A、修改Engine节点信息: <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">
B、去掉<Cluster>  </Cluster> 的注释符
C、修改Cluster 节点信息
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
         channelSendOptions="8">

          <Manager className="org.apache.catalina.ha.session.DeltaManager"
                   expireSessionsOnShutdown="false"
                   notifyListenersOnReplication="true"/>

          <Channel className="org.apache.catalina.tribes.group.GroupChannel">
            <Membership className="org.apache.catalina.tribes.membership.McastService"
                        mcastBindAddress="192.168.3.73"
                        address="224.0.0.0"
                        port="45564"
                        frequency="500"
                        dropTime="3000"/>

            <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
                      tcpListenAddress="192.168.3.73"
                      port="4001"
                      autoBind="100"
                      selectorTimeout="100"
                      maxThreads="6"/>

            <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
              <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
            </Sender>
            <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
            <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
          </Channel>

          <Valve className="org.apache.catalina.ha.tcp.ReplicationValve"
                 filter=""/>
          <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>

          <Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
                    tempDir="/tmp/war-temp/"
                    deployDir="/tmp/war-deploy/"
                    watchDir="/tmp/war-listen/"
                    watchEnabled="false"/>

          <ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>
          <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
        </Cluster>
Tomcat 2  (IP: 192.168.3.78)
A、修改Engine节点信息: <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat2">
B、去掉<Cluster>  </Cluster> 的注释符
C、修改Cluster 节点信息(同上,只做小动修改即可)
修改web应用里面WEB-INF目录下的web.xml文件,加入标签
<distributable/>
直接加在</web-app>之前就可以了

四、测试 集群及session同步
在webapps 下新建test 目录
目录下建WEB-INF目录下的web.xml文件
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    version="2.5">
       <display-name>TomcatDemo</display-name>
       <distributable/>
</web-app>

新建test.jsp进行测试:
<%@ page contentType="text/html; charset=GBK" %>
<%@ page import="java.util.*" %>
<html><head><title>Cluster App Test</title></head>
<body>
Server Info:
<%
out.println(request.getLocalAddr() + " : " + request.getLocalPort()+"
");%>
<%
  out.println("
ID " + session.getId()+"
");

String dataName = request.getParameter("dataName");
  session.setAttribute("myname","session?");
  if (dataName != null && dataName.length() > 0) {
     String dataValue = request.getParameter("dataValue");
     session.setAttribute(dataName, dataValue);
  }
  out.print("<b>Session P</b>");
  Enumeration e = session.getAttributeNames();
  while (e.hasMoreElements()) {
     String name = (String)e.nextElement();
     String value = session.getAttribute(name).toString();
     out.println( name + " = " + value+"
");
         System.out.println( name + " = " + value);
   }
%>
  <form action="test.jsp" method="OST">
    name:<input type=text size=20 name="dataName">
    key:<input type=text size=20 name="dataValue">

    <input type=submit>
   </form>
</body>
</html>
完成之后重启所有服务

到这里,已基本完成
电影http://www.tvvcd.com最新电影

6

主题

636

帖子

186

积分

落伍者(一心一意)

Rank: 1

贡献
79
鲜花
0
注册时间
2010-12-29

QQ绑定

发表于 2013-4-6 16:40:33 | 来自 中国广东广州
也太长了,先顶再看
喜庆用品
www.5detuan.com yilige.com
zzliwu.com

435

主题

6160

帖子

4527

积分

落伍者(两全齐美)

广州数据中心老杨

Rank: 2

贡献
2910
鲜花
13
注册时间
2006-5-28

落伍手机绑定

发表于 2013-4-7 01:47:59 | 来自 中国广东广州
这个真的要学习学习

20

主题

110

帖子

18

积分

落伍者(一心一意)

Rank: 1

贡献
11
鲜花
0
注册时间
2013-3-1

落伍手机绑定

发表于 2013-4-10 12:05:32 | 来自 中国福建福州
支持一下!!呵呵
头像被屏蔽

0

主题

551

帖子

312

积分

落伍者(一心一意)

Rank: 1

贡献
122
鲜花
1
注册时间
2005-5-15

落伍手机绑定

发表于 2013-4-12 16:39:38 | 来自 中国山东德州
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽

12

主题

2950

帖子

9

积分

落伍者(一心一意)

Rank: 1

贡献
175
鲜花
0
注册时间
2009-1-20

落伍手机绑定

发表于 2013-4-14 01:58:45 | 来自 中国广东中山
供大家学习
论坛客服/商务合作/投诉举报:2171544 (QQ)
落伍者创建于2001/03/14,本站内容均为会员发表,并不代表落伍立场!
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论!
落伍官方微信:2030286 邮箱:(djfsys@gmail.com|tech@im286.com)
© 2001-2014

浙公网安备 33060302000191号

浙ICP备11034705号 BBS专项电子公告通信管[2010]226号

  落伍法律顾问: ITlaw-庄毅雄

手机版|找回帐号|不能发帖?|Archiver|落伍者

GMT+8, 2024-11-1 09:29 , Processed in 0.058623 second(s), 33 queries , Gzip On.

返回顶部