热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

Linux系统配置ApacheHttpd整合tomcat

最近学习apache+tomcat将网络上、书上和API上看到进行了一下整理,做了个小测试,算做入门学习总结吧,具体内容如下:1、准备下载需要的文件。这里假定你已经正确安装配置好了JDK。例如:chmod777jdk-6u37-linux-i586.bin./jdk-6u37-linux-i586.bin安

最近学习apache+tomcat将网络上、书上和API上看到进行了一下整理,做了个小测试,算做入门学习总结吧,具体内容如下:

1、准备

下载需要的文件。这里假定你已经正确安装配置好了JDK。

       例如:chmod 777 jdk-6u37-linux-i586.bin

./jdk-6u37-linux-i586.bin 安装jdk

           mv 命令移动到指定路径下

       配置环境变量

root用户,编辑 etc/profile文件,修改JAVA_HOME路径如下

#Java environment

export JAVA_HOME=/usr/local/jdk1.6.0_37

export CLASSPATH=./:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

export PATH=$PATH:$JAVA_HOME/bin

export JRE_HOME=$JAVA_HOME/jre

       并使之生效,执行

source /etc/profile

 

到Apache官方网站下载所需要的文件:

httpd-2.4.3.tar.gz

apache-tomcat-6.0.36.tar.gz

tomcat-connectors-1.2.37-src.tar.gz

其中httpd和jakarta-tomcat-connectors为源码包,apache-tomcat为二进制包。

2、安装apache

:

# tar zxvf httpd-2.4.3.tar.gz

# cd httpd-2.4.3

# ./configure --prefix=/usr/local/apache2 

# make 

# make install

# ln -s /usr/local/apache2/ apache

 

备注1:安装过程中提示需要gcc支持,解决方法如下

yum -y install gcc

yum -y install gcc-c++

 

备注2:安装过程中提示提示APR not found 解决方法如下

下载apr安装包:

http://apache.etoak.com//apr/apr-1.4.6.tar.gz

tar zxvf apr-1.4.6.tar.gz

cd apr-1.4.6

./configure --prefix=/usr/local/apr

make && make install

 

下载apr-util安装包:

http://mirror.bjtu.edu.cn/apache//apr/apr-util-1.5.1.tar.gz

tar zxvf apr-util-1.5.1.tar.gz

cd apr-util-1.5.1

./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/bin/apr-1-config

make && make install

 

下载pcre安装包:

ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.32.zip

unzip pcre-8.32.zip

cd pcre-8.32

./configure --prefix=/usr/local/pcre

make && make install

 

安装httpd包:

tar zxvf httpd-2.4.3.tar.gz

cd httpd-2.4.3

 ./configure --prefix=/usr/local/apache2 --enable-so --enable-rewrite --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre/bin/pcre-config

make && make install

 

3、安装Tomcat

:

# tar -zxvf apache-tomcat-6.0.36.tar.gz

# mv apache-tomcat-6.0.36 /usr/local/tomcat6

# ln -s /usr/local/tomcat6/ tomcat (建立连接这一步可以不需要)

4、ajp_proxy方式整合配置

配置两个tomcat做负载均衡,tomcat1、tomcat2:

首先注意修改两个tomcat的端口配置,修改server.xml:

      

      

      

   redirectPort="8443" />

      

   redirectPort="8443" />

      

      

然后在server.xml中去掉标签的注释,修改jvmRoute别名,如下:

      

      

在host标签下添加Context标签,例如:(两个tomcat配置一样)

      

crossCOntext="true"/>

在每个tomcat目录下的conf\Catalina\localhost目录下建立一个ROOT.xml,如下:

        

      

 antiJARLocking="false" distributable="true"> 

      

修改web.xml文件添加元素

编辑apache配置文件 httpd.conf:

打开如下模块的注释:

LoadModule proxy_module modules/mod_proxy.so #引入ajp模块

LoadModule proxy_ajp_module modules/mod_proxy_ajp.so #引入ajp模块

LoadModule proxy_balancer_module modules/mod_proxy_balancer.so #用于监控界面

在最后添加以下内容:

#用于监控界面

ProxyRequests Off

ProxyPass / balancer://mycluster/ stickysession=JSESSIONID

ProxyPassReverse / balancer://mycluster/ stickysession=JSESSIONID

     BalancerMember ajp://10.25.1.151:8009/ route=tomcat1 loadfactor=1

     BalancerMember ajp://10.25.1.151:9009/ route=tomcat2 loadfactor=1

#用于监控界面

SetHandler balancer-manager

注意如下几个地方:

Listen 80 #不要添加IP或者localhost

ServerName localhost:80 #如果使用域名,需要配置本机的windows中host文件

编辑一个jsp文件用于测试

注意,针对 session处理,tomcat集群有两种方式:

sticky模式(黏性会话模式):同一个用户的访问请求都被派送到同一个tomcat实例上。

       好处:无须在多台服务器之间实现session共享了

       缺点:不能实现 failureover了,一但用户访问的机器挂掉,那么其session就会丢失。

session复制模式:同一用户的SESSION会被拷贝到各TOMCAT实例上。

       好处:解决failureover的问题,即使某一台web服务器挂掉了,用户请求会被负载到其他web服务器上,且session也被复制了,对用户而言就像是在同一台机器上操作一样。

       缺点:session复制需要系统资源和网络的开销,尤其是当web服务器多的时候或session里存储的数据量大的时候,这点将会比较的明显(未做极限测试)。

针对这两种方式的优缺点,可以将两种模式结合的方式来达到更好的效果,那就是sticky+session复制模式。用户的请求按照 sticky方式被分发到同一个web服务器上,同时tomcat在后台做异步复制(非同步)session到其他web服务器,这样我们使用 sticky的简便性,同时又有了一定的容错能力。

5、mod_jk.so方式整合配置

编译生成mod_jk文件

:

# tar -zxvf tomcat-connectors-1.2.37-src.tar.gz

# cd tomcat-connectors-1.2.37-src/native/

# ./configure --with-apxs=/usr/local/apache2/bin/apxs

--with-java-home=/usr/local/jdk1.6.0_37/

# make

# cp ./apache-2.0/mod_jk.so /usr/local/apache2/modules/  

//如果直接下载的是.so的tomcat连接文件的话,只需将名称改为mod_jk.so,然后放在modules目录下就可。

注意:编译工程出现该情况是由于c++编译器相关package没有安装,用超级用户登陆,在终端上执行:

       #yum install glibc-headers

       #yum install gcc-c++

注意:如果需要重新生成so文件尽量把../native/apache-2.0中多余的文件删除掉,我的做法是重新解压缩了一次tomcat-connectors-1.2.37-src.tar.gz

配置/usr/local/apache2/conf/httpd.conf 文件,添加如下代码:

LoadModule jk_module modules/mod_jk.so

       JkWorkersFile conf/workers.properties

       JkMountFile conf/uriworkermap.properties

       JkLogFile logs/mod_jk.log

       JkLogLevel warn

注意如下几个地方:

Listen 80 #不要添加IP或者localhost

ServerName localhost:80 #如果使用域名,需要配置本机的windows中host文件

创建并配置/usr/local/apache2/conf/workers.properties文件,内容如下:

worker.list=wlb,jkstatus

worker.tomcat1.port=8009

worker.tomcat1.host=localhost

worker.tomcat1.type=ajp13

worker.tomcat1.lbfactor=1

# Define preferred failover node for tomcat1

#worker.tomcat1.redirect=tomcat2

worker.tomcat2.port=9009

worker.tomcat2.host=localhost

worker.tomcat2.type=ajp13

worker.tomcat2.lbfactor=1

# Disable tomcat2 for all requests except failover

#worker.tomcat2.activation=disabled

worker.wlb.type=lb

worker.wlb.balance_workers=tomcat1,tomcat2

worker.jkstatus.type=status

#以上注释掉的两行如果开启,则worker2成为worker1的备用,在worker1不可用的情况下才会向worker2请求

创建并配置/usr/local/apache2/conf/uriworkermap.properties,内容如下:

/admin/*=wlb

/manager/*=wlb

/jsp-examples/*=wlb

/servlets-examples/*=wlb

/examples/*=wlb

/*.jsp=wlb

/*=wlb

!/servlets-examples/*.jpeg=wlb

/jkmanager=jkstatus

!/*.gif=wlb

!/*.jpg=wlb

!/*.png=wlb

!/*.css=wlb

!/*.js=wlb

!/*.htm=wlb

!/*.html=wlb

配置两个tomcat做集群负载均衡,tomcat1、tomcat2:

             redirectPort="8443" />

redirectPort="8443" />

cOnnectionTimeout="20000" redirectPort="8443" />

cOnnectionTimeout="20000" redirectPort="8443" />

Context标签两个tomcat配置是一样的

      

crossCOntext="true"/>

Cluster标签两个tomcat的配置是一样的:

 

   expireSessiOnsOnShutdown="false"

   notifyListenersOnReplication="true"/>

 

address="228.0.0.4"

port="45564"

frequency="500"

dropTime="3000"/>

address="127.0.0.1"

port="4000"

autoBind="100"

selectorTimeout="5000"

maxThreads="6"/>

      

      

      

      

  tempDir="/tmp/war-temp/"

  deployDir="/tmp/war-deploy/"

  watchDir="/tmp/war-listen/"

  watchEnabled="false"/>

      

      

修改应用程序的web.xml文件:

在 之前加上 用于session 复制

可以进行测试了~


推荐阅读
  • 在IDEA中运行CAS服务器的配置方法
    本文介绍了在IDEA中运行CAS服务器的配置方法,包括下载CAS模板Overlay Template、解压并添加项目、配置tomcat、运行CAS服务器等步骤。通过本文的指导,读者可以轻松在IDEA中进行CAS服务器的运行和配置。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • 本文介绍了使用cacti监控mssql 2005运行资源情况的操作步骤,包括安装必要的工具和驱动,测试mssql的连接,配置监控脚本等。通过php连接mssql来获取SQL 2005性能计算器的值,实现对mssql的监控。详细的操作步骤和代码请参考附件。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 分享css中提升优先级属性!important的用法总结
    web前端|css教程css!importantweb前端-css教程本文分享css中提升优先级属性!important的用法总结微信门店展示源码,vscode如何管理站点,ubu ... [详细]
  • Servlet多用户登录时HttpSession会话信息覆盖问题的解决方案
    本文讨论了在Servlet多用户登录时可能出现的HttpSession会话信息覆盖问题,并提供了解决方案。通过分析JSESSIONID的作用机制和编码方式,我们可以得出每个HttpSession对象都是通过客户端发送的唯一JSESSIONID来识别的,因此无需担心会话信息被覆盖的问题。需要注意的是,本文讨论的是多个客户端级别上的多用户登录,而非同一个浏览器级别上的多用户登录。 ... [详细]
  • 目录浏览漏洞与目录遍历漏洞的危害及修复方法
    本文讨论了目录浏览漏洞与目录遍历漏洞的危害,包括网站结构暴露、隐秘文件访问等。同时介绍了检测方法,如使用漏洞扫描器和搜索关键词。最后提供了针对常见中间件的修复方式,包括关闭目录浏览功能。对于保护网站安全具有一定的参考价值。 ... [详细]
  • 项目运行环境配置及可行性分析
    本文介绍了项目运行环境配置的要求,包括Jdk1.8、Tomcat7.0、Mysql、HBuilderX等工具的使用。同时对项目的技术可行性、操作可行性、经济可行性、时间可行性和法律可行性进行了分析。通过对数据库的设计和功能模块的设计,确保系统的完整性和安全性。在系统登录、系统功能模块、管理员功能模块等方面进行了详细的介绍和展示。最后提供了JAVA毕设帮助、指导、源码分享和调试部署的服务。 ... [详细]
  • Tomcat安装与配置教程及常见问题解决方法
    本文介绍了Tomcat的安装与配置教程,包括jdk版本的选择、域名解析、war文件的部署和访问、常见问题的解决方法等。其中涉及到的问题包括403问题、数据库连接问题、1130错误、2003错误、Java Runtime版本不兼容问题以及502错误等。最后还提到了项目的前后端连接代码的配置。通过本文的指导,读者可以顺利完成Tomcat的安装与配置,并解决常见的问题。 ... [详细]
author-avatar
mobiledu2502896593
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有