LNMT架構和LAMT架構的實現

一 、LNMT架構html

     LNMT架構:顧名思義是指 Linux  Ningx MySQL Tomcat  java


     架構圖:mysql


    wKiom1Nu87XR0HPrAAEGEtLEyOs680.jpg

  配置步驟:linux

       

   一、Tomcat服務器配置nginx

         

(1)設置服務器內網ip地址
 # ifconfig eth0 192.167.13.2/24 up  設置ip地址
(2)安裝Tomcat
 #請參照個人博客http://jungege.blog.51cto.com/4102814/1409290
 #service  tomcat start 啓動服務
(3)編輯配置文件
 # vim  /usr/local/tomcat/conf/server.xml
  <Host name="www.a.com" appBase="/www/webapps" unpackWARS="true" autoDeploy="true">
  <Context path="" docBase="ROOT" reloadable="true" />
  <Valve className="org.apache.catalina.valves.AccessLogValve"directory="logs"                                                                                                                                                                
    prefix="localhost_access_log." suffix=".txt"
    pattern="%h %l %u %t &quot;%r&quot; %s %b" />
  </Host>
 # mkdir  -pv  /www/webapps/ROOT 建立web程序存放目錄
 (4)部署web程序
  下載JavaCenter_Home_2.0_GBK.tar.bz2 
  # tar xf JavaCenter_Home_2.0_GBK.tar.bz2
  # cd JavaCenter_Home_2.0_GBK
  # mv * /www/webapp/ROOT
  程序部署完畢,接下來咱們部署Ningx反向代理服務器

   

   二、配置Ninx服務器web


   

(1)安裝Nginx
  # ifconfig  eth0 172.16.13.4/16 up 配置外網地址
  # route add default gw 172.16.0.1
  # ifconfig eth1 192.168.13.4/24 up  配置內網地址
  下載rpm包 nginx-1.4.7-1.el6.ngx.x86_64.rpm
  # rpm -ivh nginx-1.4.7-1.el6.ngx.x86_64.rpm
  # service nginx start  啓動服務
  # ss -ntl | grep 80 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
  編輯配置文件
  #  cd /etc/nginx/conf.d
  #  vim default.conf   添加一個server
   server {
        listen       80;
        server_name  localhost;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       
      location / {   
          root  /web/htdocs;
           index  index.html  index.jsp index.htm;   
       }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     
       location *~ \.(jsp|do)$ {
           proxy_pass http://www.a.com:8080;  ---動態.jsp  .do 頁面反向代理至Tomcat1服務器
       }  
    }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
  # mkdir  -pv /web/htdocs
  # vim /web/htdocs/index.html 建立一個html靜態頁面
  <h1> Welcom to Nginx Server!!!</h1>
  # service nginx reload
  # vim /etc/hosts
  192.168.13.2   www.a.com


    配置MySQL服務器sql

    咱們將Tomcat和MySQL裝在同一臺機器上 apache

   

# yum  -y install mysql mysql-server
受權用戶
#mysql
mysql> grant all on *.* to 'root'@'localhost' identified by '123456'; 
mysql> flush privileges;


     

   Web瀏覽器測試vim

   請求靜態頁面centos

   wKiom1Nu9sDhXVvjAABUHPW2e3k149.jpg

   請求動態頁面


   wKiom1Nu9qnjv9cSAADJal8TOd0465.jpg


   已經看到靜態頁面nginx直接處理,動態頁面由tomcat處理後返回給nginx代理

   成功實現動靜分離!


 

二 、LAMT架構


    LAMT架構:Linux Apache MySQL Tomcat


    架構圖

     wKioL1NvZTazWphAAADy_XECH78256.jpg

       

Apache與Tomcat的鏈接通訊依賴於mod_proxy模塊或者mod_jk模塊
    mod_proxy模塊使用時的協議爲http、https、ajp
    mod_ajp  模塊使用時的協議爲ajp

       

   根據上圖的架構,咱們來配置


配置步驟

 一、配置TomcatA服務器


(1)配置ip地址
# ifconfig eth0 192.167.13.2/24 up  設置ip地址
(2)安裝 Tomcat
# 請參照個人博客 http://jungege.blog.51cto.com/4102814/1409290
# service  tomcat start
# ss -ntl | grep 8080


   接下來咱們配置httpd服務器

           

  二、配置httpd服務器(使用mod_proxy模塊)

    ###httpd基於mod_proxy模塊,使用http協議與tomcat通訊

   

Apache服務器使用mod_proxy 模塊 作反向代理
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
# yum -y install httpd 系統自帶的httpd
# rpm -q httpd
  httpd-2.2.15-29.el6.centos.x86_64
# cd  /etc/httpd/conf.d
# vim mod_proxy.conf
   ProxyVia on      --------開啓via
   ProxyRequests off -------關閉正向代理,即開啓了反向代理
   ProxyPreserveHost on  
   ProxyPass / http://192.168.13.2:8080/        ---------反向代理至tomcat服務器,tomcat使用http協議
   ProxyPa***everse / http://172.16.13.2:8080/   ---------將對根的訪問重定向至tomcat服務器
   <Location />     ----------------定義訪問屬性
    Order Allow,Deny
     Allow from all
   </Location>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
# service httpd configtest
# service  httpd start
# ss  -ntl | grep 80
  LISTEN     0      128                      :::80

           

    Web瀏覽器測試

    wKioL1Nva4OwWf9bAAIpi2BFbl4194.jpg     #####http基於mod_proxy模塊使用http協議與tomcat成功通訊



  三、配置http服務器(使用mod_proxy模塊)

    ###http基於mod_proxy模塊使用ajp協議與tomcat通訊

   

編輯配置文件
#cd  /etc/httpd/conf.d
# vim mod_proxy.conf
  ProxyVia on       --------開啓via
  ProxyRequests off -------關閉正向代理,即開啓了反向代理
  ProxyPreserveHost on 
  ProxyPass / ajp://192.168.13.2:8009   ---------反向代理至tomcat服務器,tomcat使用ajp協議
  ProxyPa***everse / ajp://172.16.13.2:8009/   ---------將對根的訪問重定向至tomcat服務器
  <Location />     ----------------定義訪問屬性
   Order Allow,Deny
   Allow from all
  </Location>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
# service httpd configtest
# service  httpd start

       

    Web瀏覽器測試

    wKiom1NvbMPS04tGAAIx2DmrCAo309.jpg       ####http基於mod_proxy模塊使用ajp協議已成功與tomcat通訊


  四、配置http服務器(使用mod_jk模塊)

 

#mod_jk是ASF的一個項目,是一個工做於apache端基於AJP協議與Tomcat通訊的鏈接器,它是apache的一個模塊 ,是AJP協議的客戶端(服務端是Tomcat的AJP鏈接器)

   

   

下載tomcat-connectors-1.2.37-src.tar.gz  源碼包
(1)編譯安裝   
# yum  -y install httpd-devel
# rpm -ql httpd-devel | grep apxs
    /usr/sbin/apxs
    /usr/share/man/man8/apxs.8.gz
# tar xf tomcat-connectors-1.2.37-src.tar.gz
# cd  tomcat-connectors-1.2.37-src/native
#  ./configure --with-apxs=/usr/sbin/apx
# make && make install  
  查看是否生成mod_jk模塊
# ls /usr/lib64/httpd/modules/ | grep mod_jk.so
   mod_jk.so 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
(2)編輯配置文件,爲mod_jk提供配置
# cd /etc/httpd/conf.d/ 
# mv mod_proxy.conf mod_proxy.conf.bak  此時咱們用不到mod_proxy
# vim mod_jk.conf
   LoadModule  jk_module  modules/mod_jk.so
   JkWorkersFile  /etc/httpd/conf.d/workers.properties
   JkLogFile  logs/mod_jk.log
   JkLogLevel  debug
   JkMount  /*  TomcatA
   JkMount  /status/  statA
# vim workers.properties ------編輯workers工做線程的屬性
   worker.list=TomcatA,statA
   worker.TomcatA.port=8009
   worker.TomcatA.host=192.168.13.2
   worker.TomcatA.type=ajp13
   worker.TomcatA.lbfactor=1
   worker.statA.type = status
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
# service httpd configtest  測試配置文件
# service  httpd restart


    Web瀏覽器測試

   wKioL1Nvb2XScCOTAAI8dNYK2ls438.jpg      ####http基於mod_jk模塊使用ajp協議與tomcat實現通訊


  查看mod_jk狀態

  Web瀏覽器訪問 http://172.16.13.4/status/

   wKioL1NvcP6xJO1uAAK3NHUNgZA423.jpg  

   

 

 基於mod_jk 實現負載均衡


                                           圖(1)

 

   wKiom1Nvccbw7RCXAADy_XECH78372.jpg

1、配置兩個Tomcat服務器

   

   TomcatA :


 (1)安裝jdk 和tomcat  

   下載  jdk-7u9-linux-x64.rpm apache-tomcat-7.0.42.tar.gz
                                                                                                                                                                                                                                                                                                                                                                                                                                                               
# rpm -ivh  jdk-7u9-linux-x64.rpm
# vim /etc/profile.d/java.sh
  export CATALINA_HOME=/usr/java/latest
  export PATH=$CATALINA_HOME/bin:$PATH
# . /etc/profile.d/java.sh
# java -version

     

  wKiom1NvcqjBnT5rAACZSNFd0_E121.jpg

   

   

# tar xf apache-tomcat-7.0.42.tar.gz -C /usr/local
# cd /usr/local
# ln -sv apache-tomcat-7.0.42 tomcat
# vim /etc/profile.d/tomcat.sh
# . /etc/profile.d/tomcat.sh

    提供服務腳本

     #vim  /etc/rc.d/init.d/tomcat

#!/bin/sh
# Tomcat init script for Linux.
#
# chkconfig: 2345 96 14
# description: The Apache Tomcat servlet/JSP container.
# JAVA_OPTS='-Xms64m -Xmx128m'
JAVA_HOME=/usr/java/latest
CATALINA_HOME=/usr/local/tomcat
export JAVA_HOME CATALINA_HOME
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     
case $1 in
start)
  exec $CATALINA_HOME/bin/catalina.sh start ;;
stop)
  exec $CATALINA_HOME/bin/catalina.sh stop;;
restart)
  $CATALINA_HOME/bin/catalina.sh stop
  sleep 2
  exec $CATALINA_HOME/bin/catalina.sh start ;;
configtest)
  exec $CATALINA_HOME/bin/catalina.sh configtest ;;
*)
  exec $CATALINA_HOME/bin/catalina.sh * ;;
esac

   

# chmod +x /etc/rc.d/init.d/tomcat
# chkconfig --add tomcat
# chkconfig tomcat on
# service tomcat start 啓動服務
# ss -ntl | grep 8080  tomcat默認偵聽的端口爲8080
LISTEN     0      100                      :::8080


   (2)部署jsp程序

     

#cd  /usr/local/tomcat/webapps/
# mkdir -pv WEB-INF/{classes,lib}
# vim index.jsp
<%@ page language="java" %>
<html>
  <head><title>TomcatA</title></head>
  <body>
    <h1><font color="red">TomcatA.jungege.com</font></h1>
    <table align="centre" border="1">
      <tr>
        <td>Session ID</td>
    <% session.setAttribute("magedu.com","magedu.com"); %>
        <td><%= session.getId() %></td>
      </tr>
      <tr>
        <td>Created on</td>
        <td><%= session.getCreationTime() %></td>
     </tr>
    </table>
  </body>
</html>
#service tomcat restart

  TomcatB:

 

    (1)安裝jdk與tomcat

       

#同TomcatA


    (2)部署jsp程序

     

# cd  /usr/local/tomcat/webapps/
# mkdir -pv WEB-INF/{classes,lib}
# vim index.jsp
<%@ page language="java" %>
<html>
  <head><title>TomcatB</title></head>
  <body>
    <h1><font color="blue">TomcatB.jungege.com</font></h1>
    <table align="centre" border="1">
      <tr>
        <td>Session ID</td>
    <% session.setAttribute("magedu.com","magedu.com"); %>
        <td><%= session.getId() %></td>
      </tr>
      <tr>
        <td>Created on</td>
        <td><%= session.getCreationTime() %></td>
     </tr>
    </table>
  </body>
</html>                     
                                                                                                                                                                                                                                                                                                                                                           
#service  tomcat restart

   

2、配置http服務器 (使用mod_jk模塊)


   

一、編譯安裝mod_jd模塊 
  下載tomcat-connectors-1.2.37-src.tar.gz  源碼包
                                                                                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                                                                                       
# rpm  -q httpd
  httpd-2.2.15-29.el6.centos.x86_64
# yum  -y install httpd-devel
# rpm -ql httpd-devel | grep apxs
   /usr/sbin/apxs
  /usr/share/man/man8/apxs.8.gz
                                                                                                                                                                                                                                                                                                                          
# tar xf tomcat-connectors-1.2.37-src.tar.gz
# cd  tomcat-connectors-1.2.37-src/native
#  ./configure --with-apxs=/usr/sbin/apx
# make && make install  
 查看是否生成mod_jk模塊
# ls /usr/lib64/httpd/modules/ | grep mod_jk.so
  mod_jk.so 
                                                                                                                                                                                                                                                                                                                       
二、編輯配置文件,爲mod_jk提供配置
# cd /etc/httpd/conf.d/ 
# mv mod_proxy.conf mod_proxy.conf.bak  此時咱們用不到mod_proxy
# vim mod_jk.conf
     LoadModule  jk_module  modules/mod_jk.so
     JkWorkersFile  /etc/httpd/conf.d/workers.properties
     JkLogFile  logs/mod_jk.log
     JkLogLevel  debug
     JkMount  /*  lbcA
     JkMount  /status/  statA
# vim workers.properties 編輯workers的特性
      worker.list=lbcA,statA
      worker.TomcatA.port=8009
      worker.TomcatA.host=192.168.13.2
      worker.TomcatA.type=ajp13
      worker.TomcatA.lbfactor=1
                                                                                                                                                                                                                                                                                                                          
      worker.TomcatB.port=8009
      worker.TomcatB.host=192.168.13.3
      worker.TomcatB.type=ajp13
      worker.TomcatB.lbfactor=1
      worker.lbcA.type=lb
      worker.lbcA.sticky_session=0
      worker.lbcA.balance_workers=TomcatA,TomcatB
      worker.statA.type = status
                                                                                                                                                                                                                                                                                                                          
# service httpd configtest  測試配置文件
# service  httpd start

   


  Web瀏覽器測試

   

   wKiom1NvdkuAk-dyAACv6EkhEHU994.jpg

   wKioL1NvdjOiax-zAACyfQjsw7g243.jpg

   #####http基於mod_jk與tomcat通訊實現了負載均衡

   

  接下來咱們實現session綁定功能


   

一、tomcatA  tomcatB 設置
   tomcatA 編輯配置文件定義jvmRoute屬性
# vim /usr/local/tomcat/conf/server.xml
   <Engine name="Catalina" defaultHost="localhost"jvmRoute="TomcatA">  
#service  tomcat restart 
   tomcatB 編輯配置文件定義jvmRoute屬性
# vim /usr/local/tomcat/conf/server.xml
   <Engine name="Catalina" defaultHost="localhost" jvmRoute="TomcatA"> #service tomcat restart
2 、編輯httpd的workers.properties
# vim /etc/httpd/conf.d/workers.properties 修改一下內容
  worker.lbcA.sticky_session=1
# service httpd  restart

 

    Web瀏覽器測試


    wKiom1NvdxWzsfbgAACP7GiI4jg459.jpg

    ###session綁定成功




基於modproxy實現負載均衡

    架構圖:如圖(1)


     

#######必定要啓動proxy_balancer_module模塊
# cd  /etc/httpd/conf.d/
# mv mod_jk.conf mod_jk.conf.bak   此處咱們再也不使用mod_jk模塊
# vim mod_proxy.conf
   ProxyVia on
   ProxyRequests off
   ProxyPreserveHost on
   <Proxy balancer://lb>
       BalancerMember http://192.168.13.2:8080 loadfactor=1 route=TomcatA
       BalancerMember http://192.168.13.3:8080 loadfactor=1 route=TomcatA
   </Proxy>
   ProxyPass / balancer://lb/
   ProxyPa***everse / balancer://lb/
   <Location />
      Order Allow,Deny
      Allow from all
   </Location>
# service httpd restart

   

    Web瀏覽器測試

    wKioL1NveHTSSpSvAACKkDhOmB0554.jpg

     wKioL1NveIjSjYURAACQ0LF7A20299.jpg

      #####基於mod_proxy模塊的使用實現了負載均衡



   接下來咱們實現session綁定

   

# cd /etc/httpd/conf.d/
# vim mod_proxy.conf  修改以下行
  ProxyPass / balancer://lb/  stickysession=JSESSIONID
# service  httpd restart

 


   Web瀏覽器測試


    wKiom1NveWfzFb4HAACN-uKIca8685.jpg  

     ####session成功綁定


     

   lbmanager配置


   

#vim /etc/httpd/conf.d/mod_proxy.conf  添加以下內容
 <Location /lbmanager>
    SetHandler balancer-manager
 </Location>
 ProxyPass /lbmanager !
                                                                                                                       
# service  httpd restart


    Web瀏覽器訪問http://172.16.13.4/lbmanager


    wKioL1Nve0fC7hfsAALlq2Tshrk617.jpg

 經過lbmanager這個界面咱們能夠對tomcat節點進行管理與監控  




PS:  水平有限,不妥之處請詳細指出,不詳盡之處請指出,有疑問之處請指出!

相關文章
相關標籤/搜索