Neutron的手工安装与外部环境配置(完整版)doc资料_第1页
Neutron的手工安装与外部环境配置(完整版)doc资料_第2页
Neutron的手工安装与外部环境配置(完整版)doc资料_第3页
Neutron的手工安装与外部环境配置(完整版)doc资料_第4页
Neutron的手工安装与外部环境配置(完整版)doc资料_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Neutron的手工安装外部环境配置(整版)doc料六的手置一任前环境:成功完成任务中所有容后始本验已完务的开始续完成本任务内容。二.任务涉及点:controller和三任目:完成基组件的安装;完成的改完成数据的创以授;、租户、角色及服务端点的创;完成主置文件认证分的配;完虚拟网卡的创建。四.任务步骤其详解:步骤一Neutron基组件的安装在controller上行yum源安装装相关依包,命令如。[root@controller~]#installopenstack-neutronopenstack-neutron-ml2python-neutronclientopenstack-neutron-openvswitch执行上安装命令成功,我们可以看到成标志,所有controller节点Neutron依赖包都安装完成,如1所示。图1软包装成反结(1)在compute上行yum源安装命令安装相包,命令如下。[root@compute~]#yuminstallopenstack-neutron-ml2openstack-neutron-openvswitchopenstack-neutron-openvswitch执行上安装命令成功,我们可以看到成标志,所有点依赖包都安装完成,如图2所。图2软包装成反结(2)步骤二修改内数为得Neutron完美现SDN功能,需通过修改内核文件开启内核发,关闭据加过rp_filter)功能,该功能在controller及compute节点都需实现,故两个节点分别修改内核文,实现功,命如。[root@controller~]#改:加:修改成需使生,令如。[root@controller~]#sysctl-pcompute节修改方式相同,不再赘述。步骤三:创建数据库并权相关操作与前面个服务创建数据类似,先,用户录数库命令如。[root@controller~]#mysql-uroot-p000000接着建数据库,命令如下。mysql>CREATEDATABASEneutron;看到示QueryOK,1rowaffected(0.00sec)明库建成功。下,创建的用并予其Neutron数据库的操作权限,使得本地及程都能访问,密码为,令如下。mysql>GRANTALLPRIVILEGESONneutron.*TO'neutron'@'localhost'IDENTIFIEDBY'000000';mysql>GRANTALLONneutron.*TO'neutron'@'%'IDENTIFIEDBY'000000';mysql>exit上述语与创建数的语句请参考目中第四节“实训步及其解的步骤二“建Keystone据库并授权”部分对创建数据库时SQL语句的说明在此不做赘述。然后,们controller节的Neutron主配文件进行修改,使得服可以问数据具令。[root@controller~]#openstack-config--set/etc/neutron/neutron.confdatabaseconnectionmysql://neutron:000000@controller/neutron与其他服务不同是Neutron服务会运行时自动同数据库,故在此无手工同步。同,我们也可以过编辑器,编辑文件[database]字段与数据库连接的内容以达相效果,编辑请注语格式。步骤四:注Neutron服Keystone服器前面节中我们过,在中,的Keystone服要运,都首服注。一个需Keystone注以下两个方的,用,务(service)点。首先,用,注用的目的是为用户的,在前面节过。在我们加Neutron用户并为户置密码,在本实训过程中我们的码一用,命如,如示。[root@controllerkeystoneuser-create--name=neutron图建用的反果本所有的服务都创建在service租户下Neutron用户必须在service租下具有权限。下面,再为Neutron用户在service户下配admin权限命令下[root@controller~]#keystoneuser-role-add--tenant=service--role=admin上述命令用法在第六章实训项4步中提在里不在赘述。接下,我注Neutron服务和点(endpoint)息,注册和的信目是了确保用能顺访问Neutron服,并执行一系列Neutron服有关的操作,前面说过现在们进行Neutron服务和端点息的注册,命令如下,结果如图和5所。[root@controller~]#keystoneservice-createneutron--typenetwork--description"OpenStackNetworking"图建服果[root@controller~]#keystoneendpoint-create--service-id$(keystoneservice-list|awk'//{print$2}')--publicurl"://controller:9696"--adminurl://controller:9696"--internalurl://controller:9696图建的的反馈果上述命令用法在第六章实训项4步中提这述要的Neutron的服口为9696。步骤六配Neutron使用息列服务消队列我们仍然使用队如命令配置controller节点及compute节点的的队列。controller点中行如命。[root@controller~]#openstack-config--set/etc/neutron/neutron.confDEFAULTqpid_hostnamecontrollercompute节点中执行下命。[root@compute[root@compute--set/etc/neutron/neutron.confDEFAULTqpid_hostnamecontroller我们同也可以通过修文件来实现同样的效果。步骤七配置Neutron的认信息与OpenStack其组似Neutron同样需要与之间进行交互,可过修改节点及compute的Neutron的主配文件来现也可以通过如命令来配置的Keystone认证信息。controller点中行如命。[root@controller~]#openstack-config--set/etc/neutron/neutron.confDEFAULTauth_strategykeystone[root@controller~]#openstack-config--set/etc/neutron/neutron.confkeystone_authtokenauth_uri://controller:5000[root@controller~]#openstack-config--set/etc/neutron/neutron.confkeystone_authtokenauth_hostcontroller[root@controller~]#openstack-config--set/etc/neutron/neutron.confkeystone_authtokenauth_protocol[root@controller~]#openstack-config--set/etc/neutron/neutron.confkeystone_authtokenauth_port35357[root@controller~]#openstack-config--set/etc/neutron/neutron.confkeystone_authtokenadmin_tenant_nameservice[root@controller~]#openstack-config--set/etc/neutron/neutron.confkeystone_authtokenadmin_userneutron[root@controller~]#openstack-config--set/etc/neutron/neutron.confkeystone_authtokenadmin_password000000compute节点中执行下命。[root@compute~]#openstack-config--set/etc/neutron/neutron.confDEFAULTauth_strategykeystone[root@compute~]#openstack-config--set/etc/neutron/neutron.confkeystone_authtokenauth_uri://controller:5000[root@compute~]#openstack-config--set/etc/neutron/neutron.confkeystone_authtokenauth_hostcontroller[root@compute~]#openstack-config--set/etc/neutron/neutron.confkeystone_authtokenauth_protocol[root@compute~]#openstack-config--set/etc/neutron/neutron.confkeystone_authtokenauth_port35357[root@compute~]#openstack-config--set/etc/neutron/neutron.confkeystone_authtokenadmin_tenant_nameservice[root@compute~]#openstack-config--set/etc/neutron/neutron.confkeystone_authtokenadmin_userneutron[root@compute~]#openstack-config--set/etc/neutron/neutron.confkeystone_authtokenadmin_password000000Neutron的Keystone认证信息包括默认证服务点、认证端口、用户名、租名、密码等。完成步骤七后,我可以通过在controller节和compute节点分别行命令过滤文件中的内容,来查已完成配置。controller点中行如命。执后,我们可以看controller节Neutron配置文件过滤后内容,如下示[DEFAULT]qpid_hostname=controllerauth_strategy=keystone[quotas][agent][keystone_authtoken]auth_uri=://controller:5000auth_host=controllerauth_protocol=auth_port35357admin_tenant_name=serviceadmin_user=neutronadmin_password=000000[database]connectionmysql://neutron:000000@controller/neutron[service_providers]在compute节行下令我同样能看到过滤后的compute节Neutron主置文件的参数如下所示。[DEFAULT]qpid_hostname=controllerauth_strategy=keystone[quotas][agent][keystone_authtoken]auth_uri=://controller:5000auth_host=controllerauth_protocol=auth_port35357admin_tenant_name=serviceadmin_user=neutronadmin_password=000000[database][service_providers]步骤八创建虚拟网卡Neutron供了拟网卡功能,我们可以通创建的虚拟网与Openstack创建虚拟机进通讯。本书中验为保证全网通信常,在controller与点都创建了虚拟网卡,可以根据实际情况相应节点创建。首先我们进入节点Centos6.5的网卡配置目录,命令如下。[root@controllercd/etc/sysconfig/network-scripts/接来我创建一张拟卡通过命创建一个名为“ifcfg-br-ex”网卡文,具体内容如下。DEVICE=br-exONBOOT=yesNM_CONTROLLED=noBOOTPROTO=staticNAME="Systembr-ex"[root@controller~]serviceopenvswitchrestart网桥服成功重启后,们可以执行以下绑命令。[root@controller~]ovs-vsctladd-br[root@controllerovs-vsctladd-brbr-ex[root@controller~]ovs-vsctlbr-exeth1绑定成后我关闭物理网的功,GRO功会来自同数据流小流量数据包合并为一大流量数据包交内核协栈,当虚网桥处理此类比MTU最传单)值更大的包时,就会选择丢弃,为了保证虚拟网络之间不出现丢包及传输过慢的情况需要关闭物理网卡的功能,关闭后重启网络服务,命令如下。[root@controller~]ethtool-Kgrooff[root@controller~]servicenetworkrestartcontroller虚拟创建后,建节的虚拟网卡,建方法与controller节似不述。创建功后可通过以下命来查是绑定成功,令如。[root@controller~]#ovs-vsctl若绑成功结如示。图6查看拟卡物理网绑定况反结对于大多数企业应用,都希望能做到7*24时不间断运行。要保持如此高的可用性并非易事,比较常见的做法是将系统部署到多台机器上,每台机器都对外提供同样的功能,这就是集群。系统变为集群时,除了要求系统能够支持水平伸缩外,还要解决两个问题:1,如何均衡地访问到提供业务功能的机器。2如何保证当机器出现问题时,用户能自动跳转到另外的机器,不影响使用。常用的负载均衡技术有硬件和软件两种,本示例常用软件的技术实现。软件也有很多实现技术,如基于的od_jk以及mod_proxy等基于mod_jk的章不少本演示一下用mod_proxy的方式。实现群应重要是理用户ession的题一有种略:1,复制,Sticky,基于ache的集中式Session第二章.配置环境1,JDK1.6,请自行下载安装搞的一都有的吧,哈4安过略第章部署图第章集配置一、就地取材复的ex重命名为cluster应用以就用做测试三、为了Tomcat7中实现ession复制,以下必需完成:•UncommenttheClusterelementinserver.xml。把C元素的注释去掉。参照四•Ifhavedefinedcustomyouhavethe。参照四•IfyourTomcatinstancesarerunningonthesamemachine,makesurethetcpListenPortisforinstance,inmostistoonit'sownbyautodetectingin4000-4100。参照四<中的注释Makesureyourweb.xmlhasthe<distributable/>oryour<Contexdistributable="true"/>四•Ifyouaresurethatisset<Enginename="Catalina"jvmRoute="node01"andthattheattributevalueyinmod_jk情,们以管。•Make当用台器,保不机时的步原为tomcat制的一些制。具体原看文档。•surethatyourloadbalancerisforstickysessionmode.保证负载均衡软设置为sticky模式。四、详细配置:修改tml,我们采用是默认的配,在<Engine>节下加Java代expireSessionsOnShutdown="false"notifyport="45564"address="auto"<!如果是同一机器部署两应用,则修为以免冲突.不同机器下,不用改此项。>[color=red]port="4000"[/color]autoBind="100"maxThreads="6"/>24.</Sender></Channel>30.filter=""/>32.tempDir="/tmp/war-temp/"deployDir="/tmp/war-deploy/"watchDir="/tmp/war-listen/"41.</Cluster>2.<Connectorprotocol="/1.1"connectionTimeout="20000"redirectPort="8443"/>修改,为了调方便。tomcat7_a\webapps\cluster\WEB-INF\web.xml加入<distributable/><Enginename="Catalina"defaultHost="localhost"添加jvmRoute属性,此项为后面负载均衡到。五、复制一份t应,改名为tomcat7_b.只是为了图方便,实际应该复制的是前的luster工程。意以下几点配置就o1.修改ml的erverport属性port="8006"是同台器个t应用,以改一下。修改port="8082"/1.1"edirectPort="8443"/>,同理,为避台机号冲部置在机器管。3.修改<Enginename="Catalina"jvmRoute="tomcat7_b">,此项为后负载衡用。修改address="auto"port="4001"autoBind="100"selectorTimeout="5000"ml中加入<distributable/>到此集群配置成第五章.集群测试1.和的cluster工中分别添加测试文Java代1.pe="text/html;3.<html><head><title>Cluster<body>//Sessionsession=8.out.println("<br>ID:"+9.//如果有新的请求,则添加属性=if(name!=&&>{value=request.getParameter("value");}List:</b>");Enumeration<String>names=session.getAttributeNames();while(names.hasMoreElements()){sname=names.nextElement();value=out.println("="+value+"<br>");}%><formaction="testCluster.jsp"名称:<inputtype=textname="name"><br>值:<inputtype=textname="value"><br><inputtype=submitvalue="提交</form></html>启动t动完后启动tomcat7_b3.进入://localhost:8081/clu对应,登录几次,可看到另外开一浏览,进入ster/testClu对应b(8082),登录name:tomcat_b,alue:balu可看到新tomcat7_a(8081)相关页面,可以到从提交的同步过来了,说明集群成功。第六章.群工作步骤参照tomcat7ithowclusteringworks,WegonnayouthroughaofInthewetoTomcatAWewillcoverthesequenceTomcatAstartsupthatiscomplete)TomcatAaS1iscreated.TomcatAreceivesarequestforTomcatAstartsTomcatAiscalledonreceivesarequest,fora(S2)TomcatAThesessionexpiresdue.第七章.负载均衡配置Tomcat有两种载均衡方式:使用ApacheServer2.xwithy我们使的是y在Server2.2以上版已经自带有:Mod_proxysupportseitherorAJPloadbalancing.我们方式。首先监听8口,在装目下找到d.conf件稍前面上Java代#听端口和监听地址Listen80002.conf/d.conf,去掉以下文本前的释以便让Apache启动自动载代模块。Java码6.proxy__modulemodules/mod_proxy_.so3.conf/d.conf文件最后上:Java码#拟配置,负均配置ServerNameServerAlias#心有地要空,不会错哈。ProxyPass/jsessionidnofailover=On8.ProxyPassReverse#ErrorLog#CustomLog"logs/access.log"common</VirtualHost>#TheProxyRequestsusuallybesetoffusingProxyRequestsOff<proxybalancer://cluster>16.BalancerMemberajp://localhost:8009loadfactor=1route=tomcat7_a=5maxt=1517.BalancerMemberajp://localhost:9009loadfactor=1route=tomcat7_bsmax=5maxt=1518.为配置热备,当所有机器ov时,才会请该机器lbmethod=bytraffic</prox>4.Tomcat7配置因为是同一机器,两个应,所以配同的端口,不同机器则不配,要和面的对应上。<ConnectorredirectPort="8443"/>redirectPort="8443"/>第八章负载均测试Tomcat7_a的cluster工程的测试文件加上码:<b>负均衡试:此:color=red>aaaaaaaaaaaaaaaaaa</font><b><b>负均衡试:此:Tomcat7_b上文件,上文件,<fontcolor=red>bbbbbbbbbbbbbbbbbb</font><b>多刷几会看页值aaaa和切换说明负载均配置功。如图:第九章.Mod_prox负载均衡算法目前mod_prox有种负载均衡算:RequCou我猜是nd-robin),lbmethod=byTraffic个是按权重,此例也是用此算),trafficnting(从a文档来看,应该是按负载量,也就是往负载少的派发新请求).bu它们通过值设置。第十章.参考文档:7文档第十一章.补充内容:负载均管理器负载均衡管理器可以态更新负载均衡的应用,你可以用管器更改负载子或者特定的应用,还可把应用设为off模。为了使用alancermod_status和_balancer必需要加载到a设置:#此项为_balancer管器要在载均项加:管理用<LocationSetHandlerbalancer-managerOrderAllow,DenyAllowfromall</Location>可以通过以下地址访问:

[root@lxp2~]#5.7(Final)[root@lxp2~]#-aLinux2.6.18-274.18.1.el5912:45:44EST2021x86_64GNU/Linux[root@lxp2~]#gccgcc(GCC)202107044.1.2-54)Copyright(C)2020Foundation,Inc.freesoftware;seeforcopyingconditions.isnotevenforFITNESSAPURPOSE.[root@lxp2~]#g++g++(GCC)202107044.1.2-54)Copyright(C)2020Foundation,Inc.freesoftware;seeforcopyingconditions.isnotevenforFITNESSAPURPOSE.[root@lxp2~]#javajavaJava(TM)RuntimeEnvironment(build1.6.0_30-b12)JavaHotSpot(TM)64-BitServerVM(build20.5-b03,[root@lxp2~]#gcc、g++和java是必须的,如果运行上述命令提示not,则需要安。具体安装方法这里不做介绍,参阅相关文档。接下来要准的是服务、务器JK连接器服务器官方没有布编译好的linux进制包,只能通过下载源代,然后自己编译。因此需要下载源码。访问

可以看到a服务器目前放出的版本信息,推荐使用稳定版的release。然后选择Unix版源码:目前tomcat服务器个人还是觉得.0比较定。7.0毕竟是新出的东西,需要一定的生产实践考验才能达到理想的状态。因此这里选tomcat。访问,以看到目稳定的版本为6.0.33:这里强烈建议下载格式的压缩包。Linux下文件访问着严格的权限制。一个件是否允许二进制或脚本的形式执,完全取于其是否拥执行缺陷,与Windows识文件缀名(、)的方式同zip格式的压缩包中是不保留文件的限信息,而ar.gz格式的缩包是保有文件的限信息的。作与接的桥梁,连接器使用C语言编,紧密结合,作为模块装到服务器中,通过配置实现特定tomcat服务进行通信,从而现负载衡的功能。访问,可以找到最新最稳定的JK连接器版:这里是推下格式的源码。因同上。apache服务器、服务器和K接器都已经下载好了,如下所示:然后将这三个包都解出来:首先编译服务器。在编译之前需要执行其自带的检测配置脚本。对于不同发行版本的L,默认装库都有所差,便同一个发行本由用户安装软件软不,也会导致统包的库有所区。apache作为开源服务器,在译前需要了解系统的库安装情况,某些模块需要依赖于特定的,如果这些库存在,配置脚本将自动忽略这些库的编译。经过检测时候会生合适的M文件这里特别提醒一句,果直接行配置本,是会编译额外模块,我们望使用外模块,需要运行配脚本命后加入数,让尽最可能编可用的。关于方面介绍以参阅我的另外一篇文章“Linux下编译a服器文块(的题(

:///chaijunkun/article/details/6977466)入a服务器源码目录并执配置脚本[plain]viewplaincopy2.[root@lxp2d-2.2.21]#./configure--enable-so加入--with-是修改服务器的工作模式默认模式refork。prefork采预派生子进程方式,用单独的子进程来处不同的请求,进程之间彼此独立。相对prefork,worker全新的持多线程和多进程混合模型的M(路理块。于用程处,以以理相对海量的请求,而系统资源的开销要小于基于进程的服务器。但是worker也使用了进程,每个进程又生成多个线程,以获得基于进程服务器的稳定性。如果配过程中出现[plain]plaincopy,下载和pr-util:解压a和a[plain]viewplaincopy进入a,并编译[plain]viewp2apr-config.inbuild.confhelpersmemoryshmembuild-outputs.mkmiscstringsCHANGESlibapr.dep6.config.laylibapr.makNOTICEconfigure.inNWGNUmakefileapr.specLICENSEtimeatomiclockspolluserbuildemacs-modeMakefile.inrandomfile_ioREADMEp2./configure生成了MakeFile后接译[plain]viewplaincopy1.[root@lxp2apr-1.4.5]#2.buildconflockspollapr-config.inbuild.confrandomapr.depMakefile.inREADMEMakefile.winshmemconfig.layoutconfig.loglibapr.depmisclibapr.dsptables10.libapr.rcNOTICEatomicNWGNUmakefiletimebuildLICENSEpasswdmake编译好后使用权限安:[plain]view[root@lxsudoinstall然后用类似方法:[plain]viewplaincopyp2apr-util-1.3.12]#./configure编译:[plain]viewplaincopyp2apr-util-1.3.12]#make编译好后使root权限安装:[plain]viewplaincopy1.p2apr-util-1.3.12]#make当然如你在配置服器编译的时没有提示缺“APR,请忽略上面关于编译的几步。回到a服务器源码所在目录开始编译:[plain]plaincopyp2d-2.2.21]#编译过程大不到十分钟,完成之后使用root权限进行安装[plain]plaincopyp2d-2.2.21]#install如果不出意,至此pache就安装成功了。来测试一下:进入服务器的目录,并启动服务器:[plain]view[root@lxp2cd[root@lxbin]#./apachectlstartd:Couldnottheserver'sfullyqualifieddomain如果出现“ItWorks!则示启成功了这里注意点就Linux的防火问题。果你Linux服务器启了防火墙,本地访问上的是没有问题,如其它计算机问的务器有可能连失。出现这种情的因防火墙将入80端口封锁了。决法是端口加入允许列表中:进入防火墙置,果发现Firewall状态为Enabled,表示防火已启用,要将)务记为信任,果需要使用协,要将务也记为任。下图所示:另外此时果有其程序占用80口是会影响到服务器的需要确这个端没有占。还有我要补充点在MacOS按照述方安装a服器是不行的开始的时候我想搭建L服务器,想到acOS是类Unix的系统,操作命令什么的都一样,就先在M上实验。结安装上服务器后启动了每次访问都提示错误,temporarily。过查阅很多资料和试才发,原来Mac系统中已经自了pache服务器。具应用是在“系统设置”中的共享功能。这个功能里有Web共享方式。其现时使用服务器是apache。它采用的配置文件在/etc/d/目录中这里的配文件和自安装的apache服器配置文件突了,因此造成505误。这一点要注意。(注我是用的M系统MacOSXLion10.7.2)2021年1月日补充:如果你希把a服务器注册为系统服务,让它随着系统启动而启动,则需要在/目录中建立服务管理脚本,我们将其命名为[python]viewplaincopy1.#!/bin/bash61#description:Thisisapachedpidfile="/usr/local/apache2/logs/d_process_name="d_path="/usr/local/apache2/bin/apachectl"start(){echo"StartingService..."d_pid_list=`pidof$d_process_name`iftest"$d,SinceIt16.RETVAL=1elseecho"LaunchingApached`$d_pathRETVAL=$?echo"LaunchSuccessfully"fi;}echo"StoppingService..."d_pid_list=`pidof$d_process_name`iftest"$"FindStartThem"`$d_path"stop"`if="0"thenRETVAL=0elseecho"CanNotTerminatedService"RETVAL=1fi;elseecho"CanNotFinddProcess,FailToStopService"RETVAL=0fi;}restart(){iftest"$?"="0"3secondstoforprocessexitsleep3startelse$?fi;}status(){if-f$pidfilethen$pidfile`echo"$d_process_name(pid:$pid_list)isrunning"elseecho"$d_process_nameisstopped"fi;}case"$1"startRETVAL=$?;;stop)RETVAL=$?;;RETVAL=$?;;status)status;;*)echo{1}quot;Usage:$0asdfasdfasdfasdf"RETVAL=2$RETVAL编写完成后存并赋予权限。然后在该目下执行[plain]viewplaincopy1.[root@lxp2init.d]#chkconfig将服添加系。脚的体解请阅我另一篇文Linux中将memcached注册为系服务(地址::///chaijunkun/article/details/7000600)刚刚完了服务器的编译接下来顺便把K接器也编译出来。进入刚刚解压出的t目录,再入ative录执配:view[root@lxp2tomcat-connectors-1.2.32-src]#jkstatusLICENSEnativesupportxdocstomcat-connectors-1.2.32-src]#native]#iisnetscapescripts10.[root@lxp2native]#./configure这里需要注意的是配置脚本要添加一个pxs完整路径作为参数。apxs是一为Apache服务器编译和安装扩展模块的工,用于编译一个或多源程序或目标代码文件为动态共享对象,使之可以用由提供的LoadModule指令在运行时加载到Apache服器中。另外配置脚本运行时会检查++所在的目录,如果没安装g++,则会显示:viewconfigure:C++preprocessorsanitycheck请检是已正安了c++编译器。因为实验用的服务器安装的X版的HatEnterpriseLinuxServer,因此要装如下包:如果使用rpm命无法安装可以在里查找到相应的资,下下来安装是一样的。配置无误就可以编译了,执行命令:view编译完成使用ls命令来列出native目下所有录文。意有apache-3和pache-0个目录由于在置编译的候指定了apxs工的位置。配脚本会根据pxs的反馈结果动识别目标服务器为版本,因此本次编译生成so模会放在apache-2.0目录中1.3目录中没有mod_jk.so的这一点请意。如下示:viewnative]#Makefilent_servicebuildconf.shiisMakefile.innative]#apache-2.0/8.lsMakefileMakefile.vcmod_jk.laNWGNUmakefileapache-2.0]#我们现将编译的拷到apache务器的目中,这个录是专门来放扩模块:[plain]viewplaincopy1.cp[root@lxp2apache-2.0]#cd[root@lxp2modules]#ls至此JK连就部完成需要置,在下中详描。由本开启tomcat服器实例以拟负载均衡+群集的果,因此们需要将前解压来的omcat制成两份进入解压的目录,命名解压来的原始录为t,然后复制目录,副本目名称为tomcat_server_2:[plain]plaincopy~]#ls9.[root@lxp2Downloads]#mvtomcat_server_110.Downloads]#cp11.Downloads]#lsapr-util-1.3.12.tar.gztomcat_server_218.Downloads]#现在测试tomcat_server_1是否能够正常工作。将我实现写好的一个测试用例下载下来(测试用例基于Spring3.0编,已经成)下地址:

:///detail/chaijunkun/3815798。载到文件TestProject.war。将此压包放入的w目录下。然切换tomcat_server_1的bin目录下,启t:[plain]viewUsing/root/Downloads/tomcat_server_1UsingUsingCATALINA_TMPDIR:/root/Downloads/tomcat_server_1/tempCLASSPATH:/root/Downloads/tomcat_server_1/bin/bootstrap.jar然后在浏览器中访问

://:8080/TestProject/showInfo.do,如果没什么外会显示类似下的信:viewplaincopyThismessagefromCurrent信息中显示了前试用所的路径以及当会话的SessionId此处注意的地方同试服务器否正常工作时一样的,需要意防火墙是否阻塞了tomcat务器默认用的080口,是有其他程占用此端。看到没么问题我们先吧关闭Using/root/Downloads/tomcat_server_1UsingCATALINA_HOME:4.Using服务器、服务器和JK连接器都部能正执行始配了用vi或其它器打/usr/local/apache2/conf/文件(由于该文件权限属性rw-r--r-,因要想修改此文件需要oot限)这就是服务器的主配文件了这里我推使用图形化的编辑来编辑它。因为这个文很多行,如果用文本式的编辑编辑个人觉很繁琐。在有很多L语句的地方,末尾追加一行然后在写有<IfModuleXXXX>的区域加一行下配置<IfModulejk_module></IfModule>下面给出一个我写的配置。注配置中有注释的地方。”开头的行为注释行。已经除了有的置中多余释。viewplaincopy"/usr/local/apache2"80ServerAdminchaijunkun@hotmailDocumentRoot52.Load<IfModule!mpm_netware_module><IfModule!mpm_winnt_module>UserGroupdaemon</IfModule></IfModule><IfModuledir_module></IfModule>#ConfigurewhileJKConnector64.<IfModulejk_module>warn</IfModule>#isworkinginworkermode71.<IfModuleStartServers20ThreadLimit200MaxClientsMinSpareThreads25Max250200Max1000</IfModule><FilesMatch"^\.ht">Orderallow,denyDenyfromallSatisfyAll</FilesMatch>ErrorLogwarn<IfModuleLogFormat"%h%u%t\"%r\"%b\"%{Referer}i\"cLogFormat"%h%u%t\"%r\"%b"common<IfModulelogio_module>LogFormat"%h%u%t\"%r\"%b\"%{Referer}i\"\"%{User-Agent}i\"%I%O"combinedio</IfModule>CustomLog"logs/access_log"common</IfModule><IfModulealias_module>ScriptAlias"/usr/local/apache2/cgi-bin/"</IfModule><IfModule</IfModule><IfModulemime_module>"conf/mime.types"AddTypeAddTypeapplication/x-gzip.gz.tgz</IfModule><IfModulessl_module>SSLRandomSeedbuiltinSSLRandomSeedconnectbuiltin</IfModule><Directory"/">OptionsFollowSymLinksDenyfromallOrderdeny,allowAllowOverrideNone</Directory><DirectoryOptionsFollowSymLinksIndexesAllowfromallOrderallow,denyAllowOverrideNone</Directory><Directory"/usr/local/apache2/cgi-bin">OptionsAllowfromallOrderallow,denyAllowOverrideNone</Directory>LoadModule表示当apache务启时要载模块为模块的别名后面的就是对于apache服务器所在目录)的模块文件名。<IfModulejk_module>区域表示当服器加载(LoadModule指令中指定的模块别名)模块时所做的配置。其中:JkLogLevel指定K连接输出日志级别,级别为以上的日志将被输出到志文件中,可选的值级由低到高分为:TRACEDEBUGINFOWARNERRORFATAL<IfModule区域表示当apache服务器以worker模式工作时使用配置。指令说明:设置服务启动时建立的进程数量因为子进程量动态的决于负载的重所有一般没有必调整这个数。erverLimit:服务允许配的进程上限。有在你需将MaxClients和置成要超过默认值1个子进的时候需要使用这个指令不要将该指令的值设的比Max和T需要的子程数量高。修改此指的值必须完全停止服务后再启动才能生效,以式重启动将不会生效。ThreadLimit:设置每子进程可配置线程数ThreadsPerChild限该指值应当和T可能达到最大值保持一致。修此指令的值必须完全止服务后再启动才能生,以restart方式重启动将会生效MaxClients用于伺客户端请求的最大接入请求量(最线程数。任何超过MaxClients制的请求都进入等候队列默认值是,16(ServerLimit)乘25(ThreadsPerChild)的结果。因此增Max的时候你必须同时增加的值。笔者建议将初始值设为以M为单位的最大物理存/2),然后据负载情况进行动态整。如一台4G存的机器,那么初值就是4000/2=2000。MinSpareThreads:最小空闲线程,默认值是"75"。个M将于个务监视闲程。果务中空闲程太,进将生空闲程。:设置最大空闲线程数。默认值是"250"。这M将于个服务监空线数如服器总的空线数多子程杀多的空线。的取值范围是有限制的。Apache按照如下限自动修正你设值:要求大于等于MinSpareThreads加上ThreadsPerChild的和。ThreadsPerChild:每个子进程建立的线程。默认值是25。进程在启动建立这些线程后就不再建立新的线程了。个子进程所拥有的所有线程的总数要足够大,以便可以处理可能的请求高峰。:设置每个子进程在其生存期内允许伺服的最大请求数量。到达M的限制后,子程将会结束如果M为"0",子进程将永远不会结。将M设置成非零有两个好处:可以防止(偶然的内存泄漏无进行而耗内存;给进程一个限寿命,而有助于服务器负减轻的候减少活动程的数量。如果设置为非零值,笔者建议设为1之间的一个。公式:ThreadLimitMaxClients<=*ThreadsPerChild,且MaxClients必须是的倍数MaxSpareThreads>=MinSpareThreads+ThreadsPerChild------------------------------------------------------------------------------------------------------------------------------------------------接下来配置上面提到conf/perties文件和conf/perties文件:进入服务目录[plain]viewplaincopy[root@lxp2~]#cd/usr/local/apache2/conf/下面给我已经配置好的两个件viewplaincopy##theworkersworker.list=loadBalanceServers,jk_watcher#localhost#------------------------worker.s1.host=localhostworker.s1.type=ajp13#localhost#------------------------worker.s2.host=localhostworker.s2.type=ajp13worker.loadBalanceServers.type=lbworker.jk_watcher.type=status#worker.jk_watcher.read_only=Trueworker.retries=3首先配置了两个一个于负载衡,一个用于监视负载均衡状态。别名分别为loadBalanceServers然后分别置位于本的两个负均衡服务器worker.s1.port:第台负载衡服务器AJP议连接器的连接口,这里配置为8109第一台负载均衡服务器的主机名、域名或者IP地址,里配为本机:JK模块实现负载采用AJP协议1.3版本,因此第一台负载均衡服务器的类型配置为worker.s1.lbfactor:第一台载均衡服务器在整个载均衡系统中所占的重,这里配置为10,权重越大,有可能处理多的请求,建议给性能好的机配置更高的权重。:服务器是多线程的tomcat能够利这一优势维持一定数的连接为缓存。据用户的少来配置个合适缓连接数量助于提高性。这里置为52021年7月8日补充:最配置的这单击集群现了问题在高并发的情况下经常会报

503错误这里我每worker上配置了如下参数:[python]viewplaincopyworker.s1.connection_pool_minsize=25worker.s1.connection_pool_timeout=600同样的置也为增加了份。这样K组件和tomcat之的连接池量就增加了。另外了应付并发量下l文句柄不够的情况,还要配置-n我这里配置65535。s1是第一台负载均衡服务器的别名,这个别要牢,因在接下来的配置中还会用到。s2作为第二负载均衡服务器,置与大致相同。区别是议连器的连接端与的不同这是因为要在同一物理机上部署两个服务器的缘故。如果两台物理,则可配置相的端口,么性就应该不一样了。两个tomcat服务的权重10,则两tomcat服器将会相同的理请求的机会。worker.loadBalanceServers.type:设置名称“loadBalanceServers”worker类型,这里配lb也就是负均衡:设名称“loadBalanceServers”的拥有哪些负负载均的服务器实,这里置为s1和worker.loadBalanceServers.sticky_session:设置负载均衡是否用粘性会话。如果该属设置为true,假设一请求被处理了下次来源同个客户端请求也将被处理。到已经达最连接数,JK才将会话切换其他服务器上。但是果恰巧一直责处理该会的服务down了,则会话会丢失,明显的故障象就是关于操作会出现名其妙的错(例如你所行的应用中用户能已经登录,但突然在次访问后莫其妙地提示有登录)。这里配置为false,不启用粘会话让服务器都有机会处理请求,提高了系统的稳定性。worker.jk_watcher.ty设置名称为“jk_watcher的类型这里置s,用于监视各个载均衡服务器例的运行状态#:设置称为”的worker否为读。上已经将个worker设置为了监控,果设置为只读就不能对负载均衡服务器参进行配置了,这里先将这条配置注释掉,默认值false,表可以配置参数。:设名称为的(负载均衡服务器实例监器)挂载路,里配为/admin/jk。这样就可以过

访问视工具,可很方地看各负载衡服器的工情况:这是全局的重次数在服务器启动后会最多尝试若干次去接这些载均衡服务器,若连接不上就认为是down掉,这里配置为3下面给出置,其作是告诉a服务器哪请求由负载均服务器处理:[python]viewplaincopy1.###defineallrequestswillbesubmittedloadbalanceservers#iftheconditionissatisfied,thewilltuntilit's#noticetheorderofthefollowing/*=loadBalanceServers!/*.gif=loadBalanceServers!/*.tif=loadBalanceServers!/*.png=loadBalanceServers在配置文件,以“!开头条件示“不要”,”表示交给。因此条件/*=loadBalanceServers”表示将任何请求交给载均衡服务。服务器接收到一个请求后按照配置文件中的约束条件个一个地检,然后按照最满足的匹配件来决定由哪来处请求。我的测用例中需要输入

:///TestProject/showInfo.do来查看信。那接来将个请作示来解上置文工作程:经过上面的条件筛选,最符合条件的就“/*=loadBalanceServers因此将请求转给了负载均服器。试想一下,果在主录下放置了一名的图,访路径为:///a.jpg,请求经过该配置的检查,最后满足的条件就是,不要将结尾的请交给负载均衡服务器,因apache服务己处理该请求。.jpg是静态数,apache由C语实现直接对系底层行操作,因此态性能优良。而tomcat作为器,擅的相关业务的解析。此通过这样配置可以实现用的“动静态分”,相互取长短,优化性能。类地也可以将.css和.等等静文件按照述格式填到u配置文件中。由于在同台物理机中署了两个服务器实例,因此需要对端口相关的设置特别心tomcat服务器主配置文件ml位于conf目录内。为了配简单,我最原始server.xml配文件中的所有注释删,然后配置好了一个板,该模板s1(即tomcat_server_1)的配置文件,下所示:[html]viewplaincopy1.<?xmlversion='1.0'encoding='utf-8'?>指定t服器的Telnet录端口并设置闭服务指令为"SHUTDOWN"此处需意服器安全--><ServerclassName="org.apache.catalina.core.AprLifecySSLEngine="on"/>className="org.apache.catalina.core.JasperListener"/>tener"/>8./>Listener"/>name="UserDatabase"auth="Container"tydescription="Usersebeand="org.apache.catalina.users.Memory"ml"/></GlobalNamingResources><Servicename="Catalina">

服务口在同一台机器上运行两个omcat实例需修改这个端口具体数无要求重复即可-->port="8081"connectionTimeout="20000"redirectPort="8443"/><!--此处的口要w文s负载均衡服务器一致-->protocol="AJP/1.3"redirectPort="8443"/>文件中指定的另外一一样-->本实中有个omcat务器实例因此s服务器指向的转发象为,s2服务器的这个地方要置为-->如有三个务器实例做负均衡,需要置为--><Enginename="Catalina"defaultHost="localhost"jvmRoute="s2"><RealmclassName="org.apache.catalina.realm.UserDatabaseRealm"resourceName="UserDatabase"/><Hostname="localhost"appBase="webapps"unpackWARs="true"xmlValidation="false"alse"><!--开配置群--><!--如果仅配置负载均衡,只需要将标签注释掉--><!--如果使用群集应用ml要加上distributable标签-->ter"channelSendOptions="8">Manager"exnotifyListenersOnRe/>配群集统中个节之间伙伴系同一群集系统中的节点处配要相同-->mbership.McastService"40.address=""port="45564"dropTime="3000"<!--在集中服务器用于接收来自其他服务器分发的信息例如同会话<!--若在同一台机器上运行两个omcat实例要修这个端口具体数值无要求不复即可-->44.autoBind="100"selectorTimeout="5000"maxThreads="6"/><Sender48.ort.nio.PooledParallelSender"/>53.55.</Channel>Valve"filter=""eBinderValve"/>er"deployDir="/tmp/war-deploy"watchEnabled="false"/>ssionIDBinderListener"/>64.<ClusterListenersionListener"/></Cluster><!--结配置集</Host>配好服务器再配置s2服器。按上面模板中的注释求,修改相应的端口就可以了。PS:<Cluster...></Cluster>节点之间部分不必自己动手敲进去,在to服务器录的/webapps/docs/cluster-howto.html件中有这一文字,拷贝出来贴到server.x文件中即。2021年7月8日补充:当大并发量存在时,便Apache的K组件与t保持足够数量的连,也不能有效免503错误,因为大量的请被转发到tomcat,无法相应那么请求,于是抛出了03。要在onnector的地配置Threads参,将大线数调。如下示:viewplaincopy<Connectorport="8009"protocol="AJP/1.3"redirectPort="8443"Threads="10URIEncoding="UTF-8"/>另外,果业代码中频

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论