Apache及Tomcat搭建集群环境过程解析

其实Apache把集群搭建起来并不麻烦,我这里也是从网上找了一些资料自己配置出来的,当然有一些参数需要自己设置下,做到最优

搭建集群首先是下载软件,因为公司这边的服务器是Win2003的,所以也节俭了一些操作:

Apache下载地址:http://httpd.apache.org/ 我下载的是Apache httpd 2.2.27 Released

Tomcat 下载地址:http://tomcat.apache.org/download-60.cgi 我下载的是6.0.39的解压版

首先是配置Tomat,因为Tomcat就是集群的各个节点,首先要保证各个节点能正常运行起来:
做两个节点,解压Tomcat文件夹分别命名为tomcat-node1,tomcat-node2
需要修改的配置文件:

Tomcat启动内存:

Bin下catalina.bat,因为是Win2003,Linux下是catalina.sh,在文件的最头部增加:

set JAVA_OPTS=-Xms256m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=256m -XX:-UseGCOverheadLimit -XX:+UseConcMarkSweepGC -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000

如果是Linux,只是写法稍微不同:

JAVA_OPTS="-server -Xms256m -Xmx1030m -XX:PermSize=128m -XX:MaxPermSize=256m -XX:-UseGCOverheadLimit -XX:+UseConcMarkSweepGC -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000"

具体各个参数的含义和具体优化方案,谷歌“tomat 启动内存”,这里需要指出的是,在Windows下,JVM启动内存最大是设备内存的1/4,我这台机器不管你设置多大,都是1300M。

Tomcat日志配置:

conf下的logging.properties,这里你可以不管它,但是需要指出的是,如果不配置,服务长久运行下去后,日志可能会出现占满磁盘的情况,到时会造成宕机的情况,哥就遇到过,不多说了。
配置日志,需要注意的几点有,1:日志输出地址。2:日志输出级别。3:日志输出大小
想尽配置自己谷歌吧,以为即使你不配置也不影响继续往下看。

Tomcat监控配置:

conf下tomcat-users.xml,这里文件就这么点内容:

<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
</tomcat-users>

我说的是除了注释以外。这里就增加一个用户:

<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<role rolename="manager"/>
<user username="admin" password="admin_cui" roles="manager"/>
</tomcat-users>

更想尽的配置,好吧,你懂的。配置之后你可以通过访问http://localhost:8011/manager/html来查看当前连接处理情况。

核心、重点,server.xml

三个端口,一个名字:

管理端口:shutdown="SHUTDOWN"前面有一个端口,第一个端口,我就设置为8012,第二个就是22

<Server port="8012" shutdown="SHUTDOWN">

服务端口:

<Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="300" minSpareThreads="50" maxIdleTime="120000" />
<Connector executor="tomcatThreadPool" address="0.0.0.0" port="8011" protocol="org.apache.coyote.http11.Http11NioProtocol" connectionTimeout="120000"
maxKeepAliveRequests="1" redirectPort="443" maxHttpHeaderSize="8192" URIEncoding="UTF-8" enableLookups="false" acceptCount="500" compression="on"
compressionMinSize="2048" compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" disableUploadTimeout="true"/>

可以看出来,这里都是优化过的配置,包括NIO、连接池、编码,压缩等,各个参数含义不多说了。
AJP端口:

<Connector port="8039" protocol="AJP/1.3" redirectPort="8443" />

jvmRoute名字,集群时用:

<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm3">

下面的一段配置也放开:

<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" />

如果你启动Tomcat能启动,且访问8011可以访问,那么这个节点就配置好了,其他节点都一样,记得三个端口一个名字各个节点需不一样。

配置Apache

配置文件httpd.conf是最主要的配置文件,配置时需要注意以下几点:
放开代理模块的加载:

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_scgi_module modules/mod_proxy_scgi.so

放开对网站的访问,这里我就不再啰嗦配置,直接全放开了

Deny from All

的全部改为

allow from all

放开如下几个配置文件的加载,把前面的#去掉即可

  • Include conf/extra/httpd-mpm.conf 配置多路处理模块(MPM) 的辅配置文件
  • Include conf/extra/httpd-vhosts.conf 配置虚拟主机的辅配置文件
  • Include conf/extra/httpd-default.conf 配置与Apache服务自身相关的辅配置文件

httpd-mpm.conf和httpd-default.conf默认即可,如果你想根据实际情况进行一些相关配置,可以参考前面分享的文章
httpd-vhosts.conf的话,配置集群节点服务标记,ServerAlias配置为本地IP即可

<VirtualHost *:80>
ServerAdmin webmaster@dummy-host3.wuxian.com
ServerName 192.168.1.102
ServerAlias 192.168.1.102
ProxyPass / balancer://cluster/ stickysession=jsessionid nofailover=On
ProxyPassReverse / balancer://cluster/
ErrorLog "logs/lbtest-error.log"
CustomLog "logs/lbtest-access.log" common
</VirtualHost>

在httpd.conf最底部增加如下配置

ProxyRequests Off
<proxy balancer://cluster>
BalancerMember ajp://127.0.0.1:8019 loadfactor=1 route=jvm1
BalancerMember ajp://127.0.0.1:8029 loadfactor=1 route=jvm2
</proxy>

开启反向代理,使用AJP代理访问,loadfactor是分发权重,route是之前在Tomcat中定义的名字,注意这里是AJP端口不是Tomcat服务端口

Tomcat性能调优和Apache配置文件的定制,是影响集群性能的重要两点。
到此其实已经配置完成了,还是需要提一点的是,会话共享,在各个工程的web.xml中增加<distributable/>这配置即可。

把Tomcat小猫都启动起来,然后启动Apache,访问实际工程即可。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

时间: 2020-10-15

Windows下Apache+Tomcat7负载均衡配置方法详解

准备工作 Windows Server 2008 R2 Enterprise(2.40GH,8GB,64Bit,192.168.10.212) 2台Ubuntu 10.04.4(192.168.10.98,192.168.10.137) JDK1.7.80 Tomcat7.0.68 Apache2.4.4 1.安装Apache2.4.4 安装过程中没什么注意事项,一直Next就行了.安装完成后默认开启Apache服务,可以在浏览器上输入localhost或者127.0.0.1,这时候会出现It

Apache2.2以上版本与Tomcat整合配置及负载均衡实现

今天技术总监叫实现Apache和Tomacat整合,在网上找了很多资料,结果发现还是这个最方便! 下面是实现2个tomcat实现负载均衡,如果只有一个则可删除一个 apache2.2以上版本,无需使用jk_mod来集成tomcat,直接使用ajp,很方便. 修改apache配置文件httpd.conf 启用mod_proxy_ajp 复制代码 代码如下: #LoadModule proxy_module modules/mod_proxy.so #LoadModule proxy_ajp_mod

Docker自动部署Apache Tomcat的方法

介绍 本文会讲述: 扩展Tomcat的官方Dockerfile 构建新的镜像 从修改过的新镜像启动容器 在容器里部署RESTful的Web服务并测试 Apache Tomcat 使用docker search可以查到最流行的(和官方的)Docker Tomcat容器: $ sudo docker search tomcat [sudo] password for craig: NAME DESCRIPTION STARS OFFICIAL AUTOMATED tomcat Apache Tomc

Nginx配合Apache或Tomcat的动静分离基本配置实例

其实本人比较喜欢nginx跑静态和做负载反向代理,动态php还是交给apache处理比较稳定,jsp就交给tomcat.resin或jboss.nginx跑静态的能力是无与伦比的,是目前web服务器里最强的.nginx和apache.tomcat.resin的动静分离配置其实很简单,就几句配置,稳定性也非常好. 1.nginx和apache的动静分离配置: 把下面配置放到nginx配置文件相应的server { }里面,如果使用其他端口号,改一下就行: #所有php的动态页面均交由apache处

服务器Apache与Tomcat和Nginx的理解和对比分析详解

1 问题 公司服务器用的Apache,后台是php语言,然后服务端用的linux C/C++,会经常听到Apache服务器,然后之前实习的公司服务端用的java,然后依稀记得使用了nginx反向代理服务器和tomcat,请求先经过nginx然后再去通过tomcat转发请求,然后对Apache服务器和tomcat和nginx理解就有点模糊了,然后今天查阅相关资料对使用场景和进行对比 2 Apache.Tomcat .Nginx名词解释 1 ) Apache Apache HTTP服务器是一个模块化

Jsp和PHP共用80端口整合Apache和Tomcat(访问时无需加端口号)

目的: 整合Apache和Tomcat,使得Java工程和PHP工程都能共用80端口,访问网站时,无需在地址栏中加端口号. 环境说明: Linux CentOS 32位 Apache 2.2.2 Tomcat 7.0.37 准备工作: 下载mod_jk.so http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/ 打开链接找到合适的文件下载,下载后改名为mod_jk.so 修改Apache相关文件 1.将mod_j

Android实现与Apache Tomcat服务器数据交互(MySql数据库)

需求:Android客户端连接服务器端MySQL数据库中的内容 环境部署 服务器:apache-tomcat-8.5.9 语言版本:Java 1.8.0_101 编译环境:Eclipse android Studio 调用jar包:httpclient-4.2.5,httpcore-4.2.4 //HttpClient父类 mysql-connector-java-5.1.40-bin //用于连接mysql数据库 思路:涉及到服务器端mysql数据库安装.web应用部分开发和Android客户

Ubuntu 16.04安装Apache Tomcat的方法

Apache Tomcat是Java Servlet和Java Server Pages技术的开源软件实现. 可以使用OpenJDK tomcat运行你的Java应用. Apache Tomcat安装 从Ubuntu软件库安装Tomcat: apt-get install tomcat8 您可能还需要安装tomcat8-docs,tomcat8-examples和tomcat8-admin工具,这些工具提供了文档,测试和允许您基于Web的应用程序管理Tomcat. 您可以使用以下命令安装所有这三

win7下Apache2.2+Tomcat7.0整合配置详解

一.简单介绍 Apache.Tomcat Apache HTTP Server(简称 Apache),是 Apache 软件基金协会的一个开放源码的网页服务器,可以在 Windows.Unix.Linux 等操作系统中运行是最流行的Web服务器软件之一.Apache 反应速度快,运行效率高,但只支持HTML等静态页面(加载插件后也可支持 PHP 页面). Apache Tomcat 是由 Apache 软件基金协会与 Sun 公司联合开发的一款Web服务器,它除了支持HTML等静态页面外,还支持

linux下安装Nginx1.16.0的教程详解

因为最近在倒腾linux,想安装新版本的nginx,找了一圈教程没有找到对应的教程,在稍微倒腾了一会之后终于成功的安装了最新版. 服务器环境为centos,接下来是详细步骤: 安装必要依赖插件 yum install -y gcc gcc-c++ pcre \ pcre-devel zlib zlib-devel openssl openssl-devel wget 创建文件夹并切换过去 mkdir /customer && cd /customer 下载安装包 (同样如果想安装其他的版本

Nginx环境下WordPress的多站点功能配置详解

WordPress的多站点功能允许安装一个WordPress程序的情况下,实现多个站点(也就是一套程序,可以绑定多个域名或子域名). 每个站点拥有独立的主题.插件.文章以及页面. 这样可以极大的减少了维护和更新多个WordPress安装程序的麻烦, 并且,每个站点之间又能够相互独立,互不影响. WordPress multisite有两个方式:子目录和子域名,这里我们主要介绍子域名方式. 也就是说,在主域名的基础上,我们会创建一个子域名,例如:http://shop.jb51.com. 同时,我

maven项目下solr和spring的整合配置详解

前言: solr和spring整合其实很简单,只要注意导入依赖的配置文件即可.废话不多说,上代码. 第一步:编写maven项目的pom文件,导入依赖 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM

Nginx下Frp强制重定向为https配置详解

迫于家里的路由将300M的带宽强行降到80M的速度,所以入手了一个3205U的软路由,果真没有令人失望,速度飞起O(∩_∩)O哈哈~ 当然,由于宽带没有公网IP所以DDNS就不能使用,转而使用frp,在折腾的过程中踩到了一些坑,所以记录下来,希望能帮助有需要的同学. frps.ini(服务端配置) [common] bind_port = 5443 kcp_bind_port = 5443 vhost_http_port = 8080 vhost_https_port = 4443 # Frp的

Centos 5.2下安装多个mysql数据库配置详解

一.编译安装第一个MySQL 5.1.33 cd /opt /usr/sbin/groupadd mysql /usr/sbin/useradd -g mysql mysql -s /bin/nologin -d /usr/local/mysql tar -zxvf mysql-5.1.33.tar.gz cd mysql-5.1.33/ ./configure --prefix=/usr/local/mysql/ --enable-assembler --with-extra-charsets

Java中 log4j日志级别配置详解

1.1 前言 说出来真是丢脸,最近被公司派到客户公司面试外包开发岗位,本来准备了什么redis.rabbitMQ.SSM框架的相关面试题以及自己做过的一些项目回顾,信心满满地去面试,结果别人一上来就问到了最近项目使用的日志系统是什么?日志级别是怎么配置的?当时我都蒙X了,平时都是项目经理搭的,我自己也是随便上网一搜往配置文件一黏贴就OK了.我就这么说完后面试官深深定了我一眼,当时我的内心羞愧到...... 1.2 闲话少说,讲讲日志的发展故事(如果已经了解的可以跳过,直接看1.3日志配置) 要想

Redis 对比 Memcached 并在 CentOS 下进行安装配置详解

Redis 是一个开源.支持网络.基于内存.键值对的 Key-Value 数据库,本篇文章主要介绍了Redis 对比 Memcached 并在 CentOS 下进行安装配置详解,有兴趣的可以了解一下. 了解一下 Redis Redis 是一个开源.支持网络.基于内存.键值对的 Key-Value 数据库,使用 ANSI C 编写,并提供多种语言的 API ,它几乎没有上手难度,只需要几分钟我们就能完成安装工作,并让它开始与应用程序顺畅协作.换句话来说,只需投入一小部分时间与精力,大家就能获得立竿

Win7系统下mysql 5.7.11安装教程详解

操作系统:win7 64位旗舰版 mysql压缩包:mysql-5.7.11-winx64.zip 1. 解压MySQL压缩包 将下载的MySQL压缩包解压到自定义目录下,我的解压目录是: "D:\Program Files\mysql-5.7.11-winx64" 将解压目录下默认文件 my-default.ini 拷贝一份,改名 my.ini 复制下面的配置信息到 my.ini 保存 #如果没有my-default.ini,可自己新建my.ini或者从其他地方中获取 #######

CentOS 7.0下使用yum安装mysql的方法详解

CentOS7默认数据库是mariadb,配置等用着不习惯,因此决定改成mysql,但是CentOS7的yum源中默认好像是没有mysql的.为了解决这个问题,我们要先下载mysql的repo源. 1.下载mysql的repo源 $ wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm 2.安装mysql-community-release-el7-5.noarch.rpm包 $ sudo rpm -ivh mys