apache/tomcat安装过程略

一些变量

apache安装目录

  1. APACHE_PREFIX=/Data/app/apache

apache配置文件

  1. APACHE_CONF=/etc/httpd/httpd.conf

tomcat 安装目录

  1. TOMCAT1_PREFIX=/Data/app/tomcat1
  2. TOMCAT2_PREFIX=/Data/app/tomcat2

tomcat根目录

  1. TOMCAT_ROOT=/Data/code

为tomcat添加项目,也就是配置tomcat根目录,修改$TOMCAT_PREFIX/conf/server.xml

在段添加Context,这里设置为/Data/code/

  1. <Host name="localhost" appBase="webapps"
  2. unpackWARs="true" autoDeploy="true">
  3. <Context path="" docBase="/Data/code"></Context>
  4. .....
  5. .....
  6. </Host>

jk安装(apache tomcat 连接器)

  1. wget http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.39-src.tar.gz
  2. tar zxvf tomcat-connectors-1.2.39-src.tar.gz && cd tomcat-connectors-1.2.39-src/native
  3. ./configure --with-apxs=/Data/app/apache/bin/apxs --with-java-home=/Data/app/jdk
  4. make # mod_jk.so会生成在apache安装目录下的modules目录

安装tomcat native,否则在tomcat启动日志中会有关于libnative的报错

  1. cd /Data/app/tomcat/bin # tomcat 安装目录下的bin目录
  2. tar zxvf tomcat-native.tar.gz && cd tomcat-native-1.1.29-src/jni/native
  3. ./configure --with-apr=/Data/app/apr/bin/apr-1-config --with-ssl=/usr/local/ssl/
  4. make && make install
  5. cp /usr/local/apr/lib/libtcnative* /usr/lib #拷贝到/usr/lib /usr/lib64等位置都可,参考tomcat启动日志

启动多个tomcat,本机启动多个tomcat,要注意修改tomcat端口,server.xml的8080,8005,8009端口都要避免冲突,不然无法启动多个tomcat

假设本机安装的两个tomcat分别为$TOMCAT1_PREFIX和$TOMCAT2_PREFIX,确认端口无冲突后启动

  1. $TOMCAT1_PREFIX/bin/catalina.sh start
  2. $TOMCAT2_PREFIX/bin/catalina.sh start

配置apache作为前端,将请求转发给后端tomcat集群

在/etc/httpd/extra目录下创建mod_jk.conf,文件内容为:

  1. LoadModule jk_module modules/mod_jk.so #加载mod_jk模块
  2. JkWorkersFile /etc/httpd/extra/workers.properties #这个文件里配置的是tomcat集群及负载均衡
  3. JkMountFile /etc/httpd/extra/uriworkermap.properties # 这里配置的是转发规则,即哪些由apache自己处理,哪些交给tomcat
  4. JkLogFile logs/mod_jk.log
  5. JkLogLevel info

在extra下创建workers.properties和uriworkermap.properties

  1. ####################################
  2. ##file name workers.properties####
  3. worker.list=tomcatserver,status # tomcatserver为均衡器名称,自定义
  4. # localhost server 1
  5. # ------------------------
  6. worker.s1.port=8009 #s1是为tomcat定义的名称,多个tomcat不得冲突
  7. worker.s1.host=localhost
  8. worker.s1.type=ajp13
  9. worker.s1.lbfactor = 1 #在集群中的权重
  10. # localhost server 2
  11. # ------------------------
  12. worker.s2.port=8010 #s2的意义同s1
  13. worker.s2.host=localhost
  14. worker.s2.type=ajp13
  15. worker.s2.lbfactor = 1
  16. #-----------------------------
  17. worker.tomcatserver.type=lb #负载均衡类型,
  18. worker.retries=3
  19. worker.tomcatserver.balance_workers=s1,s2 #s1,s2就是上边定义的名称
  20. worker.tomcatserver.sticky_session=false #启用session复制,该选项必须为false,如果为true,则表示同一用户的请求不会在多个tomcat之间移动,固定由一个tomcat处理
  21. worker.tomcatserver.sticky_session_force=1 #默认tomcat 无反应,是否将请求转到其他tomcat
  22. worker.status.type=status
  23. ##########################################
  24. #####file name uriworkermap.properties####
  25. /*=tomcatserver #所有请求都由controller这个server处理
  26. /jkstatus=status #所有包含jkstatus请求的都由status这个server处理
  27. !/*.gif=tomcatserver #所有以.gif结尾的请求都不由tomcatserver这个server处理,以下几个都是一样的意思
  28. !/*.jpg=tomcatserver
  29. !/*.png=tomcatserver
  30. !/*.css=tomcatserver
  31. !/*.js=tomcatserver
  32. !/*.htm=tomcatserver
  33. !/*.html=tomcatserver

修改$APACHE_CONF,

  1. Include /etc/httpd/extra/mod_jk.conf

重启httpd

现在apache已经可以使用jk方式与tomcat通信,并且将请求平均分发给s1,s2两个tomcat.不安装jk的话,apache可以使用proxy方式与tomcat通信

多个tomcat session复制,保持客户端会话

修改$TOMCAT1_PREFIX/conf/server.xml和$TOMCAT2_PREFIX/conf/server.xml

TOMCAT1_PREFIX/conf/server.xml######
  1. <Engine name="Catalina" defaultHost="localhost" jvmRoute="s1"> #jvmRoute必须设置,s1与workers.properties中设置的名称一致,另一个为jvmRoute="s2"
  2. <!--For clustering, please take a look at documentation at:
  3. /docs/cluster-howto.html (simple how to)
  4. /docs/config/cluster.html (reference documentation) -->
  5. <!--
  6. <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
  7. -->
  8. <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
  9. channelSendOptions="8">
  10. <Manager className="org.apache.catalina.ha.session.DeltaManager"
  11. expireSessionsOnShutdown="false"
  12. notifyListenersOnReplication="true"/>
  13. <Channel className="org.apache.catalina.tribes.group.GroupChannel">
  14. <Membership className="org.apache.catalina.tribes.membership.McastService"
  15. address="228.0.0.4"
  16. port="45564"
  17. frequency="500"
  18. dropTime="3000"/>
  19. <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
  20. address="auto" #auto的话,会绑定在127.0.0.1上
  21. port="4000" #这个端口号两个tomcat必须不一致,不得冲突
  22. autoBind="100"
  23. selectorTimeout="5000"
  24. maxThreads="6"/>
  25. <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
  26. <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
  27. </Sender>
  28. <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
  29. <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
  30. </Channel>
  31. <Valve className="org.apache.catalina.ha.tcp.ReplicationValve"
  32. filter=""/>
  33. <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>
  34. <Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
  35. tempDir="/tmp/war-temp/"
  36. deployDir="/tmp/war-deploy/"
  37. watchDir="/tmp/war-listen/"
  38. watchEnabled="false"/>
  39. <ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>
  40. <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
  41. </Cluster>

在$TOMCAT_ROOT下创建WEB-INF目录,WEB-INF目录下创建web.xml

  1. <web-app xmlns="http://java.sun.com/xml/ns/javaee"
  2. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
  4. http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
  5. version="3.0"
  6. metadata-complete="true">
  7. <display-name>Welcome to Tomcat</display-name>
  8. <description>
  9. Welcome to Tomcat
  10. </description>
  11. <distributable/> #必须添加这个标签
  12. </web-app>

启动两个tomcat

route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0

apache/tomcat安装过程略的更多相关文章

  1. Ubuntu14.04 Tomcat 安装过程记录

    Ubuntu14.04 Tomcat 安装过程记录 检查java的版本 zhousp@ubuntu:~$ sudo java -version [sudo] password for zhousp: ...

  2. Mac下Apache Tomcat安装配置

    Java Web如果稍微知道一点,一般对Tomcat都不会陌生,Apache是普通服务器,本身只支持html即普通网页,可以通过插件支持PHP,还可以与Tomcat连通(单向Apache连接Tomca ...

  3. 转-Mac下Apache Tomcat安装配置

    ava Web如果稍微知道一点,一般对Tomcat都不会陌生,Apache是普通服务器,本身只支持html即普通网页,可以通过插件支持PHP,还可以与Tomcat连通(单向Apache连接Tomcat ...

  4. linux 环境下 apache tomcat 安装jenkins

    参考文档: https://blog.51cto.com/12629984/1980034 https://www.cnblogs.com/lxs1314/p/8567652.html https:/ ...

  5. apache tomcat 安装

    1.安装jdk (java development kit) jdk下载 http://download.oracle.com/otn-pub/java/jdk tar -zxvf jdk-8u121 ...

  6. linux apache tomcat 安装和升级

    一,安装tomcat 注意!安装tomcat前需安装配置JDK,安装方式请参照这篇文章: http://www.cnblogs.com/blog4matto/p/5582054.html 1 tomc ...

  7. Apache Tomcat 安装与配置教程

    JDK的安装与配置 1. 从官网下载JDK https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-213315 ...

  8. Windows下的apache tomcat安装与配置

    在官网http://tomcat.apache.org下载apache tomcat,我下载的是7可以自行选择版本: 解压缩,把解压文件放入C盘根目录下 配置环境变量,变量名位CATLINA_HOME ...

  9. Apache Ambari安装过程(CentOS 6.5)

    一.准备环境 1.host 本人准备了三台服务器, vim /etc/hosts 192.168.1.131 dk11 192.168.1.132 dk21 192.168.1.133 dk31 2. ...

随机推荐

  1. 本地Git绑定Github仓库

    前言 Window的小伙伴如果还没在本地配好Git环境可以参考:https://www.cnblogs.com/poloyy/p/12185132.html 创建Github仓库 Github绑定本地 ...

  2. MySQL——DOS命令

    翻开之前的笔记发现有这么一篇,于是整理了一下发出来加深记忆并分享交流,欢迎纠错,谢谢!!! 1.启动MySQL服务: net start mysql; 2.停止MySQL服务: net stop my ...

  3. git 多人协同开发

    一.允许他人操作程序(两种方式) 1.添加合作者 2.创建组织 二.分支 每个开发者创建一个属于他们的dev分支 三.合并规则 1.一起合并(代码会出现冲突) 2.尽量缩短合并的周期

  4. 安装anaconda python时只能安装到默认文件夹&& 安装提示文件夹以存在问题

    这个问题困扰了两次,网上说可以,我就是不行,查了半天没找到解决方法, 后来装在C盘里, 之后在百度知道(ID:幸福999快乐)发现解决办法后来才发现问题. 在安装的时候,要安装的目标文件夹不需要先在安 ...

  5. idea实现svn拉分支和合并分支的教程

    原文地址:https://blog.csdn.net/qq_27471405/article/details/78498260 今天测试了一下svn拉分支和合并分支的教程,决定分享给大家 拉分支教程: ...

  6. kuangbin专题专题十一 网络流 POJ 1087 A Plug for UNIX

    题目链接:https://vjudge.net/problem/POJ-1087 题目:有n个插座,插座上只有一个插孔,有m个用电器,每个用电器都有插头,它们的插头可以一样, 有k个插孔转化器, a ...

  7. 定时任务莫名停止,Spring 定时任务存在 Bug??

    Hello~各位读者新年好!这里楼下小黑哥给大家拜个年,祝大家蒸蒸日上烫烫烫,年年有余屯屯屯. 那年那 Bug 春节放假,小黑哥坐上高铁回家,突然想到一次生产问题.那是小黑哥参加工作第一年,那一年国庆 ...

  8. GP工作室—需求分析

    团队作业第二次作业--需求分析 问题 答案 这个作业属于哪个课程 软件工程 这个作业要求在哪里 作业要求 团队名称 GP工作室 这个作业的目标 ① 团队项目的需求分析 ②团队项目的原型设计 团队队员介 ...

  9. 通过识别页面内容获得返回值判断后续执行(exists指令的用法)

    本案例主要用到airtest 的exists指令 从指令解释可以知道,当判断某图片不存在的时候,会返回false值 脚本思路即为如果返回值==false则执行A,!=fales则执行B 下图脚本思路, ...

  10. CSS-15-定位

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...