1臺 redhat 32 位配置nginx + tomcat2+MSM實現負載均衡,動靜分離

1. rpm -ivh jdk-7u51-linux-i586.rpm
2.JDK 環境變量配置

vi  /etc/profile
最後增長 css

#set environment for JDK
export JAVA_HOME=/usr/java/jdk1.7.0_51
export CLASSPATH=.:$JAVA_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH

3.配置完成以後,本身驗證命令 javac和java
4.tar -zxvf apache-tomcat-7.0.52.tar.gz 解壓以後copy一份
5.cp -r apache-tomcat-7.0.52 apache-tomcat-7.0.53 由於是同一臺電腦,須要改動其中1臺tomcat的端口信息
6. 
由於我安裝在 /usr/local下面,能夠用下面命令開啓和關閉,驗證tomcat是否正常啓動 也能夠經過以下命令查看 ps -ef | grep java
/usr/local/apache-tomcat-7.0.52/bin/shutdown.sh 
/usr/local/apache-tomcat-7.0.53/bin/shutdown.sh 
/usr/local/apache-tomcat-7.0.52/bin/startup.sh 
/usr/local/apache-tomcat-7.0.53/bin/startup.sh 
7.下面安裝nginx,我安裝nginx方式比較簡單,使用yum方式安裝,若是有任何問題,能夠跟我說,我會立刻回覆你
redhat 由於yum沒法用,可是我從新改變了一下,能夠查看以下連接
http://blog.csdn.net/zcyhappy1314/article/details/17580943
可是有一個地方須要改變一下,就是連接地址
wget http://tel.mirrors.163.com/centos/6/os/i386/Packages/yum-3.2.29-40.el6.centos.noarch.rpm
wget http://tel.mirrors.163.com/centos/6/os/i386/Packages/yum-metadata-parser-1.1.2-16.el6.i686.rpm
wget http://tel.mirrors.163.com/centos/6/os/i386/Packages/yum-plugin-fastestmirror-1.1.30-14.el6.noarch.rpm 
wget http://tel.mirrors.163.com/centos/6/os/i386/Packages/python-iniparse-0.3.1-2.1.el6.noarch.rpm
8.nginx 配置信息以下
html

user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
  upstream  tomcat_cluster{
              server   192.168.1.167:8080;
              server   192.168.1.167:8081;
    }
  server {
    listen 80;
    server_name 192.168.1.167;
    server_name_in_redirect off;
    proxy_set_header Host $host:$server_port;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header REMOTE-HOST $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

  
    location  / {
      proxy_pass http://tomcat_cluster; #轉向tomcat處理
    }

    location ~ \.(jsp|do|action)$ { #全部jsp頁面以及do/action請求均交由tomcat處理
      proxy_pass http://tomcat_cluster; #轉向tomcat處理
    }

   location ~ \.(htm|html|gif|jpg|jpeg|png|ico|rar|css|js|zip|txt|flv|swf|doc|ppt|xls|pdf)$ {
            root  /home/leiwente/webapp/ROOT;
            expires      30h;
       }
   }
    include       /etc/nginx/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  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}




9.先刪除兩個tomcat下面ROOT下面全部的文件,在其中一個tomcat新建 vi test.jsp java

SessionID:<%=session.getId()%>
<BR>
SessionIP:<%=request.getServerName()%>
<BR>
SessionPort:<%=request.getServerPort()%>
<%
out.println("This is Tomcat Server 111111");
%>

在另一個tomcat 新建 vi test.jsp python

SessionID:<%=session.getId()%>
<BR>
SessionIP:<%=request.getServerName()%>
<BR>
SessionPort:<%=request.getServerPort()%>
<%
out.println("This is Tomcat Server 222222");
%>



10.直接訪問 http://192.168.1.127/test.jsp頁面的再動態切換
11.下面要作session的同步,我使用的memcached-session-manager,注意使用版本問題,其中有不少序列化方式,我使用的是spy,一些文中的包均可以從下面的連接文章中下載到
https://code.google.com/p/memcached-session-manager/wiki/SetupAndConfiguration
注意序列化包的版本號,個人包以下圖,反正 每個tomcat的lib下面

12.memcached安裝直接使用yum
搜索 yum search memcached
安裝 yum install  memcached.i686
啓動 service memcached restart
13.客戶能夠經過本機登入cmd telnet 192.168.1.167 11211 登入 其中ip爲你裝的機器


14.每個tomcat中還須要配置context.xml還須要配置manager linux

<?xml version='1.0' encoding='utf-8'?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<!-- The contents of this file will be loaded for each web application -->
<Context>

    <!-- Default set of monitored resources -->
    <WatchedResource>WEB-INF/web.xml</WatchedResource>

    <!-- Uncomment this to disable session persistence across Tomcat restarts -->
    <!--
    <Manager pathname="" />
    -->
   <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
    memcachedNodes="n1:192.168.1.167:11211"
    sticky="false"
    sessionBackupAsync="false"
    requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
    transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
    />
    <!-- Uncomment this to enable Comet connection tacking (provides events
         on session expiration as well as webapp lifecycle) -->
    <!--
    <Valve className="org.apache.catalina.valves.CometConnectionManagerValve" />
    -->

</Context>
~



15.注意這裏還有1個小問題,由於1臺服務器上面安裝2臺tomcat,涉及到nginx處理圖片,js,css路徑的問題
16.這裏使用創建一個統一代碼存放的地點,例如 /home/leiwente/webapp下面

17 在每個tomcat下面ROOT下面,已經刪除了ROOT下面全部的文件 ln -s /home/leiwente/webapp/ROOT/  ROOT
18之後只要更新 / home/leiwente/webapp 下面,兩個tomcat會同時更新代碼
19如今開始從新啓動每個tomcat信息,下面是其中一個tomcat信息


20直接訪問 http://192.168.1.167/test.jsp頁面 sessionId是不會發生改變的
相關文章
相關標籤/搜索