导航:首页 > IDC知识 > apache服务器集群

apache服务器集群

发布时间:2020-11-03 08:07:45

1、Apache web服务器+weblogic集群,集群中的一台服务器宕机后的问题

Apache与weblogic只需要库文件,再配置好连接的超时时间和转发的服务器地址,建议你把apache的配置文件发出来看看。

2、Apache+Tomcat负载均衡和集群

apache 为前端,多个tomcat为后台服务器,apache向tomcat分发请求~!

3、如何搭建apache+tomcat集群

搭建apache+tomcat集群的方法:
1、安装tomcat+apache+mysql。
2、修改的端口,即修改server.xml中的配置,并修改 <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat_8084">
3、修改httpd.conf,解注释Include conf.d/*.conf
4、在conf.d文件夹中加入xxx.conf文件,在该文件中添加如下配置:
#LoadMole proxy_http_mole moles/mod_proxy_http.so

ProxyRequests Off

ProxyPass / balancer://chinatrial-cluster/ stickysession=JSESSIONID nofailover=Off
ProxyPassReverse / http://127.0.0.1:8084/
ProxyPassReverse / http://127.0.0.1:8184/
#ProxyPassReverse / http://127.0.0.1:8380/
<Proxy balancer://chinatrial-cluster>
BalancerMember http://127.0.0.1:8084/ max=800 loadfactor=10 route=tomcat_8084
BalancerMember http://127.0.0.1:8184/ max=800 loadfactor=10 route=tomcat_8184
# BalancerMember http://127.0.0.1:8380/ max=800 loadfactor=10 route=chinatrial_8080
</Proxy>
其中route后面的值是和tomcat的server.xml中的<Engine>中的jvmRoute相对应
5、实现session共享
在数据库中建session共享表:
CREATE DATABASE `session`
USE `session`;

DROP TABLE IF EXISTS `session`.`tomcat_sessions`;
CREATE TABLE `session`.`tomcat_sessions` (
`session_id` varchar(100) NOT NULL,
`valid_session` char(1) NOT NULL,
`max_inactive` int(11) NOT NULL,
`last_access` bigint(20) NOT NULL,
`app_context` varchar(255) default NULL,
`session_data` mediumblob,
PRIMARY KEY (`session_id`),
KEY `kapp_context` (`app_context`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
6、在项目的context.xml中进行Manager的配置:
<Manager className="org.apache.catalina.session.PersistentManager"
debug="99" saveOnRestart="true" maxActiveSessions="-1"
minIdleSwap="30" maxIdleSwap="600" maxIdleBackup="0">
<Store className="org.apache.catalina.session.JDBCStore"
driverName="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://172.16.100.229/session?user=root&password=nazca123&useUnicode=true&characterEncodeing=utf-8"
sessionTable="tomcat_sessions" sessionIdCol="session_id"
sessionDataCol="session_data" sessionValidCol="valid_session"
sessionMaxInactiveCol="max_inactive"
sessionLastAccessedCol="last_access" sessionAppCol='app_context'
checkInterval="60" debug="0" />
</Manager>

4、Apache apollo 怎么实现集群部署

Apache Apollo是一个代理服务器,主要用于消息的请求转发,下面是其常用的一些配置文件的介绍
一、users.properties:
用来配置可以使用服务器的用户以及相应的密码。
其在文件中的存储方式是:用户名=密码,如:
lily=123456
表示新增一个用户,用户名是:lily,密码是:123456
二、groups.properties:
持有群体的用户映射,可以通过组而不是单个用户简化访问控制列表。
可以为一个定义的组设置多个用户,用户之间用“|”隔开,如:
admins=admin|lily
表示admins组中有admin和lily两个用户
三、black-list.txt:
用来存放不允许连接服务器的IP地址,相当于黑名单类似的东西。
例如:
10.20.9.147
表示上面IP不能够连接到服务器。
四、login.config:
是一个服务器认证的配置文件,为了安全apollo1.6版本提供了认证功能,只有相应的用户名和正确的密码才能够连接
服务器。
五、服务器主配置文件apollo.xml:
该配置文件用于控制打开的端口,队列,安全,虚拟主机设置等。
1、认证:可以使用<authenticationdomain="internal" />来配置是否需要连接认证,如果将其属性enable设置为false表示不用认证,任何人都可以连接服务器,默认为true
2、access_rule:可以在broker或者virtual_host中用于定义用户对服务器资源的各种行为。如:
<access_rule allow="users" action="connect create destroy send receive consume"/>表示群组users里面的用户可以对服务器资源进行的

5、apache服务器使用ajp连接tomcat集群

把你worker.tomcat1和2的配置也发出来

6、apache在集群当中起什么作用

一般用来做负载均衡器,像tomcat做的群集就可以用apache放在群集前面做负载均衡,将应用上来的请求分到群集中的各个服务器

7、Apache + Tomcat 做集群,和 专门的集群软件有什么区别

你的集群配置是指什么,apache和tomcat配置不需要tomcat做任何事,在apache上配置多个tomcat就好了。
apache启用tomcat的插件后,可回以保证答相同的请求送到相同的tomcat服务器。这样可以保证session的持久性。
有时为了防止apache服务器的故障,还会使用多个apache服务器。多个可以用相同的配置,前面的交换机无论转到哪个apache,最终都会到相同的tomcat。

8、请问有谁安装过linux的apache的httpd集群的?

环境:
操作系统均为:CentOS 5.1
Apache2.X服务器一台:IP地址192.168.232.4;安装路径/usr/local/apache;
Tomcat6服务器一台:IP地址192.168.232.5;安装路径/usr/local/tomcat;
Tomcat6服务器一台:IP地址192.168.232.6;安装路径/usr/local/tomcat;

配置:
Apache安装:
#./configure --prefix=/usr/local/apache --enable-moles=so --enable-mods-shared=all --enable-proxy --enable-proxy-connect --enable-proxy-ftp --enable-proxy-http --enable-proxy-ajp --enable-proxy-balancer --enable-rewrite
注释:激活tomcat集群需要的 enable-proxy,enable-proxy-http,enable-proxy-connect,enable-proxy-ajp和enable-proxy-balancer,其中proxy-ajp和proxy-balancer必须依赖proxy,如果是自定义的编译除了以上几个必须的模块外,mod_status也要编译进去,切记。enable-proxy-ftp可以不编译。
#make;make install

制作Apache启动项:
#cp support/apachectl /etc/rc.d/init.d/httpd
#vi /etc/rc.d/init.d/httpd
添加以下内容:(包括#号)
# Startup script for the Apache Web Server
# chkconfig: 2345 85 15
# description: Apache is a World Wide Web server .It is used to server
# HTML files and CGI.
# processname: httpd
# pidfile: /usr/local/apache/log/httpd.pid
# config: /usr/local/apache/conf/httpd.conf
增加服务项
#chkconfig --add httpd
#chmod 755 /etc/rc.d/init.d/httpd
#chkconfig --level 345 httpd on

JDK安装:
#chmod a+x jdk-6u4-linux-i586-rpm.bin
#./jdk-6u4-linux-i586-rpm.bin

JAVA环境变量设置:
#vi /etc/profile
在文件最后添加以下内容:
JAVA_HOME=/usr/java/jdk1.6.0_04
CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
PATH=$JAVA_HOME/bin:$PATH
CATALINA_HOME=/usr/local/tomcat
export JAVA_HOME CLASSPATH PATH CATALINA_HOME
执行如下命令使环境变量生效:
source /etc/profile
测试配置是否成功:
java –version

Tomcat安装:
#wget [url]http://apache.mirror.phpchina.com/tomcat/tomcat-6/v6.0.16/bin/apache-tomcat-6.0.16.tar.gz[/url]
#tar zxvf apache-tomcat-6.0.16.tar.gz
#mv apache-tomcat-6.0.16 /usr/local/tomcat

Tomcat随机启动:
#vi /etc/rc.local
添加以下内容:
/usr/local/tomcat/bin/startup.sh

tomcat6配置文件server.xml:

<!-- You should set jvmRoute to support load-balancing via AJP ie :
<Engine name="Standalone" defaultHost="localhost" jvmRoute="jvm1">
-->
<Engine name="Catalina" defaultHost="localhost">
改成

<!-- You should set jvmRoute to support load-balancing via AJP ie :
-->
<Engine name="Standalone" defaultHost="localhost" jvmRoute="tomcatX">
<!--
<Engine name="Catalina" defaultHost="localhost">
-->
说明:
第一台tomcat就把jvmRoute="tomcat1"
第二台tomcat就把jvmRoute="tomcat2"


<!--
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
-->
去掉注释变为
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
***群集详细配置***
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
channelSendOptions="8">

<Manager className="org.apache.catalina.ha.session.DeltaManager"
expireSessionsOnShutdown="false"
notifyListenersOnReplication="true"/>

<Channel className="org.apache.catalina.tribes.group.GroupChannel">
<Membership className="org.apache.catalina.tribes.membership.McastService"
address="228.0.0.4"
port="45564"
frequency="500"
dropTime="3000"/>
<Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
address="auto"
port="4000"
autoBind="100"
selectorTimeout="5000"
maxThreads="6"/>

<Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
<Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
</Sender>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
</Channel>

<Valve className="org.apache.catalina.ha.tcp.ReplicationValve"
filter=""/>
<Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>

<Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
tempDir="/tmp/war-temp/"
deployDir="/tmp/war-deploy/"
watchDir="/tmp/war-listen/"
watchEnabled="false"/>

<ClusterListener className="org.apache.catalina.ha.session."/>
<ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
</Cluster>

配置应用的web.xml:
在每个webapps应用中,修改配置文件web.xml文件 添加元素<distributable/>
在web.xml文件中<web-app>元素下增加以下内容:
<!--此应用将与群集服务器复制Session-->
<distributable/>
具体修改如下:
修改前:
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="[url]http://java.sun.com/xml/ns/javaee[/url]"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee [url]http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd[/url]"
version="2.5">
</web-app>
修改后:
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="[url]http://java.sun.com/xml/ns/javaee[/url]"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee [url]http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd[/url]"
version="2.5">
<!--此应用将与群集服务器复制Session-->
<distributable/>
</web-app>
配置apache的ajp负载均衡功能:
确保将以下Mole的注释去掉
LoadMole proxy_mole moles/mod_proxy.so
LoadMole proxy_connect_mole moles/mod_proxy_connect.so
LoadMole proxy_ftp_mole moles/mod_proxy_ftp.so
LoadMole proxy_http_mole moles/mod_proxy_http.so
LoadMole proxy_ajp_mole moles/mod_proxy_ajp.so
LoadMole proxy_balancer_mole moles/mod_proxy_balancer.so
LoadMole status_mole moles/mod_status.so
增加以下内容:
# Proxypass Config
Include conf/extra/httpd-modproxy.conf
建立文件httpd-modproxy.conf输入内容:
<Location /server-status>
SetHandler server-status
Order Deny,Allow
Deny from all
Allow from all
</Location>
<Location /balancer-manager>
SetHandler balancer-manager
Order Deny,Allow
Deny from all
Allow from all
</Location>
ProxyRequests Off
ProxyPass / balancer://tomcatcluster stickysession=jsessionid nofailover=On

<Proxy balancer://tomcatcluster>
BalancerMember [url]http://192.168.232.5:8080[/url] loadfactor=1
BalancerMember [url]http://192.168.232.6:8080[/url] loadfactor=2
</Proxy>
注释:
ProxyRequests Off 表示启用反向代理,必须开启;
ProxyPass为代理转发的Url,即将所有访问/的请求转发到群集balancer://tomcatcluster,这里为/即将所有访问/的请求转发到群集balancer://tomcatcluster的/test目录;
BalancerMember为群集的成员,即群集服务器1或2,负载均衡服务器会根据均衡规则来将请求转发给BalancerMember;

调试负载均衡集群系统:
访问apache服务器的web服务:[url]http://192.168.232.4/balancer-manager[/url]
如果显示负载均衡有关信息则说明成功了,接着可以访问[url]http://192.168.232.4/[/url]即访问到了tomcat的应用
***必须先启动Tomcat服务再启动Apache服务!***

参考文档:
[url]http://tomcat.apache.org/tomcat-6.0-doc/cluster-howto.html[/url]
[url]http://tomcat.apache.org/tomcat-6.0-doc/balancer-howto.html[/url]
[url]http://man.chinaunix.net/newsoft/ApacheMenual_CN_2.2new/mod/mod_proxy.html[/url]
[url]http://man.chinaunix.net/newsoft/ApacheMenual_CN_2.2new/mod/mod_proxy_balancer.html[/url]

9、如何使用Apache服务器配置负载均衡集群

Internet 的快速增长,特别是电子商务应用的发展,使Web应用成为目前最重要最广泛的应用,Web服务器动态内容越来越流行。目前,网上信息交换量几乎呈指数增长,需要更高性能的Web服务器提供更多用户的Web服务,因此,Web服务器面临着访问量急剧增加的压力,对其处理能力和响应能力等带来更高的要求,如果Web 服务器无法满足大量Web访问服务,将无法为用户提供稳定、良好的网络应用服务。
由于客观存在的服务器物理内存、CPU 处理速度和操作系统等方面的影响因素,当大量突发的数据到达时,Web服务器无法完全及时处理所有的请求,造成应答滞后、请求丢失等,严重的导致一些数据包因延时而重发,使传输线路和服务器的负担再次增加。传统的方法是提高Web 服务器的CPU 处理速度和增加内存容量等硬件办法但无论如何增加Web 服务器硬件性能,均无法满足日益增加的对用户的访问服务能力。
面对日渐增加的Web 访问服务要求,必须对Web 服务器按一定策略进行负载分配。利用负载均衡[1]的技术,按照一定策略将Web 访问服务分配到几台服务器上,负载处理对用户透明,整体上对外如同一台Web 服务器为用户提供Web服务。
2 Web负载均衡结构
2.1 负载均衡
负载是一个抽象的概念,是表示系统繁忙程度,系统在一段时间空闲,该系统负载轻,系统在一段时间空忙,该系统负载重,影响系统负载的各种因数较多如果存在很多的数据包同时通过网络连向一台Web服务器,也就是网络的速度比网络所连接的设备速度快的情况下,系统负载不断增加,直到最大。
目前提高Web 服务器性能,使其具有较强负载能力,主要有两种处理思想[2]:
1)单机思想
不断升级服务器硬件性能,每当负载增加,服务器随之升级。这随之将带来一些问题,首先,服务器向高档升级,花费资金较多;其次,升级频繁,机器切换造成服务中断,可能会导致整个服务中断;最后,每种架构的服务器升级总有一个极限限制。
2)多机思想
使用多台服务器提供服务,通过一定机制使它们共同分担系统负载,对单一的服务器没有太高的性能要求,系统负载增加,可以多增加服务器来分担。对用户而言,整个系统仿佛是一台单一的逻辑服务器,这样的系统能够提供较强的可扩展性和较好的吞吐性能。
为了适应当前急剧增长的Web访问,有别于传统的单机思想,解决单机思想带来的一系列问题,本文提出了一种基于权值的策略分配负载。
2.2 负载均衡实现设备[2]
目前实现负载均衡需要两类的设备:服务器和分配器。
1)服务器(Server)
为用户提供真正的服务,也就是指给用户提供负载均衡服务的计算机设备,有关该设备的一些性能数据是负载均衡的主要依据之一。
2)分配器(Dispatcher)
由用户浏览器、Web 服务器组成两层结构Web 系统[2],如所示,实际是基于客户端的负载均衡。
负责给用户服务分配服务器,分配器的主要功能是根据客户和服务器的各种情况(这些情况要能反映服务器的负载状况或性能状况)通过一定的算法进行调动和分配工作,从而提高由服务器整体构成的网站的稳定性、响应能力。它主要是集中所有的HTTP 请求,然后分配到多台Web服务器上处理,来提高系统的处理效率。
2.3 负载均衡系统结构
2.3.1 两层结构的负载均衡系统
在服务器上运行一个特定的程序,该程序相当一个客户端,它定期的收集服务器相关性能参数,如CPU、I/O、内存等动态信息,根据某种策略,确定提供最佳服务的服务器,将应用请求转发给它。如果采集负载信息程序发现服务器失败,则找其它服务器作为服务选择。这是一种动态负载均衡技术,但是每台服务器上必须安装特定的客户端程序,同时,为保证应用程序的透明性,需要对每个应用进行修改,能够将访问请求通过该客户端程序转发到其它服务器上,重定向方式进行,修改每一个应用程序,工作量十分大。
2.3.2 三层结构的负载均衡系统
由用户浏览器、负载均衡和Web服务器组成三层结构Web系统[2],如所示。实际是基于服务器的负载均衡。如果将基于客户端的负载均衡中客户端的负载均衡部分移植到一个中间平台,形成一个应用服务器,构成请求、负载均衡和服务器的三层结构,客户端应用不需要做特殊修改,透明的中间层将请求均衡的分布到不同的服务器。
据服务器直接连到Internet 与否有两种多Web 服务器结构:隔离式(Separation) 和非隔离式(Unseparation)。隔离式是服务器不直接连到Internet,如所示,非隔离式是服务器直接连到Internet,如所示。 隔离式中只有负载均衡器对外有一个IP 地址,所有的请求由负载均衡器分配到不同的Web Server,所有Web Server 的返回结果也经过负载均衡器传回给用户。非隔离式中每一台Web Server 都有一个IP地址,用户请求经过负载均衡器分配到Web Server,而请求的应答不经过负载均衡器,直接传回用户。为了减轻均衡器的负载,本文中采用了三层结构中的隔离方式。
2.4 负载均衡实现的方法
Web 负载均衡常见算法有[3]:循环调度算法(Round-Robin Scheling)、加权循环调度算法(Weighted Round-Robin Scheling) 、最小连接调度算法(Least-Connection Scheling)、目标地址散列调度算法(Destination Hashing Scheling)、源地址散列调度算法(Source Hashing Scheling)。
本文采用基于权值的调度算法,也就是说权值大的服务器优先得到调度,本文在实现时是基于静态的权值,就是在开始的时候给每一个服务器配置一个默认的权值。当然也可以根据实际运行情况再对每一个服务器的权值进行调整。但是这需要实时的搜集每一个服务器的信息,如服务器的内存实用情况,响应速度等一些信息。

10、apache tomcat集群,求帮助

Nginx 的负载均衡配置看上去很简单。以下是 Nginx 官方给的一个简单的负载均衡的例子:
http {
upstream myproject {
server 127.0.0.1:8000 weight=3;
server 127.0.0.1:8001;
server 127.0.0.1:8002;
server 127.0.0.1:8003;
}

server {
listen 80;
server_name
location / {
proxy_pass
}
}
}
参见官方链接。而本文则会从工作机制以及指令解释上对此示例做较为详细的解释。以下是作者正文:
关于负载均衡
负载均衡是一种用于在几个虚拟专用服务器分配应用程序的传入流量的机制。被分配到多台机器的处理机制,确保容错和高度稳定。负载均衡的循环算法将访问发送到一组 IP 中。没有考虑更多比如服务器响应时间以及访问者的地理区域等细节,在很容易实现的基本层面上进行循环,分发服务器负载。

设置
本教程中的步骤要求用户在你的 VPS 中具有 root 权限。你可以在用户指南中查看如何设置。
在设置 Nginx 负载均衡之前,你得先把 Nginx 安装在你的 VPS 上。你可以使用 apt-get 命令进行快速安装:
sudo apt-get install nginx

Upstream 模块
我们需要使用 upstream 模块来设置一个循环试负载均衡。我们将把这些配置包含到 Nginx 的设置中去。
然后打开你的网站配置(在我的例子中我只演示一下一般默认虚拟主机):
nano /etc/nginx/sites-available/default
我们将会把负载均衡配置加入到这个文件中去。
首先我们需要将 upstream 模块包含进来,类似于这个:
upstream backend {
server backend1.example.com;
server backend2.example.com;
server backend3.example.com;
}
然后我们在(Nginx 的)其他配置中引用该模块:
server {
location / {
proxy_pass
}
}
重启 Nginx:
sudo service nginx restart
一旦你的所有虚拟专用主机全部就绪,你会发现负载均衡器开始将访问流量平均地分配到那些链接主机上。

指令
以上部分介绍了如何将负载平均分配到一些虚拟主机上去。但是,会有一些原因导致这不是最有效的处理数据的方法。我们可以使用一些指令来使我们的应用更加高效。
Weight
一种更精密地分配用户到各个主机上的方法就是为某些机器指定权重。Nginx 允许我们分配一个数字来说明需要转发到每个服务器的流量的比例。
一个具有服务器权重的负载均衡设置如下:
upstream backend {
server backend1.example.com weight=1;
server backend2.example.com weight=2;
server backend3.example.com weight=4;
}
默认权重为 1。权重为 2 的 backend2.example 会被发送 backend1 的两倍的流量,而权重为 4 的 backend3 则将会处理 backend2 流量的两倍相当于 backend1 流量的四倍的流量。
Hash
IP 散列允许主机根据用户的 IP 地址来响应客户端,将用户的每次访问分发给同一台 VPS(除非该台主机已经 down 掉)。如果一台主机被认为是不活跃的,它将被标记为 down 掉。所有应该路由到这台 down 掉的主机的 IP 将会被转发到另一台替代主机上去。
下面的配置提供了一个示例:
upstream backend {
ip_hash;
server backend1.
server backend2.
server backend3.
}
Max Fails
根据默认的循环负载设置,Nginx 将会持续地向 VPS 主机发送数据,即使这些主机没有任何响应。最大失败次数可以自动通过呈现一段时间内无响应的主机来防止这种情况。最大失败次数具有两个要素:max_fails 和 fall_timeout。
max_fails 指示出在这台主机被认为是不活跃状态之前连接到这台主机时出现的失败次数。
fail_timeout 指示出这台主机被认为不活动的状态的持续时间。一旦时间到了,Nginx 会重新尝试连接该主机。默认超时值为 10 秒钟。
一个配置示例:
upstream backend {
server backend1.example.com max_fails=3 fail_timeout=15s;
server backend2.example.com weight=2;
server backend3.example.com weight=4;

与apache服务器集群相关的知识