Nginx+Tomcat在Windows下做负载均衡.docx

上传人:b****6 文档编号:9273304 上传时间:2023-02-03 格式:DOCX 页数:8 大小:19.11KB
下载 相关 举报
Nginx+Tomcat在Windows下做负载均衡.docx_第1页
第1页 / 共8页
Nginx+Tomcat在Windows下做负载均衡.docx_第2页
第2页 / 共8页
Nginx+Tomcat在Windows下做负载均衡.docx_第3页
第3页 / 共8页
Nginx+Tomcat在Windows下做负载均衡.docx_第4页
第4页 / 共8页
Nginx+Tomcat在Windows下做负载均衡.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

Nginx+Tomcat在Windows下做负载均衡.docx

《Nginx+Tomcat在Windows下做负载均衡.docx》由会员分享,可在线阅读,更多相关《Nginx+Tomcat在Windows下做负载均衡.docx(8页珍藏版)》请在冰豆网上搜索。

Nginx+Tomcat在Windows下做负载均衡.docx

Nginx+Tomcat在Windows下做负载均衡

一、为什么需要对Tomcat服务器做负载均衡:

Tomcat服务器作为一个Web服务器,其并发数在300-500之间,如果有超过500的并发数便会出现Tomcat不能响应新的请求的情况,严重影响网站的运行。

另外,在访问量大的情况下,Tomcat的线程数会不断增加。

由于Tomcat自身对内存的占用有控制,当对内存的占用达到最大值时便会出现内存溢出,对网站的访问严重超时等现象,这时便需要重新启动Tomcat以释放占用的内存,这样做便会阻断网站运行。

所以对Tomcat做负载均衡便很有必要。

目前可以和Tomcat做负载均衡的主流服务器是Apache,但是Nginx由于功能多、配置简单等优点逐渐成为很多负载均衡服务器的首选。

Nginx的并发数可达到50000,所以理论上可以和Tomcat以1:

100的比例来配置,这样便可以很好的解决网站并发瓶颈问题。

二、Nginx+Tomcat在Windows下负载均衡配置方法:

Nginx+Tomcat在Windows下做负载均衡相对在Linux下简单不少,因为不论是Nginx还是Tomcat只需要下载Windows下的安装包解压到某个目录下,然后就可以做配置了。

             我选择的Nginx是nginx-0.8.49这个版本,Tomcat选择的是apache-tomcat-6.0.26。

        下面就是配置过程:

        1.将nginx-0.8.49.rar压缩包直接解压到某个目录下(如D:

/负载均衡/nginx)。

      2.将apache-tomcat-6.0.26.rar压缩包解压,因为是做负载均衡,所以至少要解压两个。

(如分别解压到D:

/负载均衡/tomcat_1和D:

/负载均衡/tomcat_2下面)。

        3.将要发布的项目发布到两个Tomcat根目录下的webapps下,保证两个Tomcat下面的项目名称相同。

        4.修改其中一个Tomcat的配置文件,该配置文件位于Tomcat目录下的/conf/下,文件名为server.xml,修改其中的,修改其中的

              connectionTimeout="20000"

              redirectPort="8443"/>

              connectionTimeout="20000"

              redirectPort="8443"/>

修改后的文件如下:

xmlversion='1.0'encoding='utf-8'?

>

--

 LicensedtotheApacheSoftwareFoundation(ASF)underoneormore

 contributorlicenseagreements. SeetheNOTICEfiledistributedwith

 thisworkforadditionalinformationregardingcopyrightownership.

 TheASFlicensesthisfiletoYouundertheApacheLicense,Version2.0

 (the"License");youmaynotusethisfileexceptincompliancewith

 theLicense. YoumayobtainacopyoftheLicenseat

 

     http:

//www.apache.org/licenses/LICENSE-2.0

 

 Unlessrequiredbyapplicablelaworagreedtoinwriting,software

 distributedundertheLicenseisdistributedonan"ASIS"BASIS,

 WITHOUTWARRANTIESORCONDITIONSOFANYKIND,eitherexpressorimplied.

 SeetheLicenseforthespecificlanguagegoverningpermissionsand

 limitationsundertheLicense.

-->

--Note:

 A"Server"isnotitselfa"Container",soyoumaynot

    definesubcomponentssuchas"Valves"atthislevel.

    Documentationat/docs/config/server.html

 -->

 

 

--APRlibraryloader.Documentationat/docs/apr.html-->

 

 

--InitializeJasperpriortowebappsareloaded.Documentationat/docs/jasper-howto.html-->

 

 

--Preventmemoryleaksduetouseofparticularjava/javaxAPIs-->

 

 

--JMXSupportfortheTomcatserver.Documentationat/docs/non-existent.html-->

 

 

 

 

--GlobalJNDIresources

      Documentationat/docs/jndi-resources-howto.html

 -->

 

   

--Editableuserdatabasethatcanalsobeusedby

        UserDatabaseRealmtoauthenticateusers

   -->

   

             type="org.apache.catalina.UserDatabase"

             description="Userdatabasethatcanbeupdatedandsaved"

             factory="org.apache.catalina.users.MemoryUserDatabaseFactory"

             pathname="conf/tomcat-users.xml"/>

 

 

 

--A"Service"isacollectionofoneormore"Connectors"thatshare

      asingle"Container"Note:

 A"Service"isnotitselfa"Container",

      soyoumaynotdefinesubcomponentssuchas"Valves"atthislevel.

      Documentationat/docs/config/service.html

  -->

 

 

   

--Theconnectorscanuseasharedexecutor,youcandefineoneormorenamedthreadpools-->

   

--

   

       maxThreads="150"minSpareThreads="4"/>

   -->

   

   

   

--A"Connector"representsanendpointbywhichrequestsarereceived

        andresponsesarereturned.Documentationat:

        JavaHTTPConnector:

/docs/config/http.html(blocking&non-blocking)

        JavaAJP Connector:

/docs/config/ajp.html

        APR(HTTP/AJP)Connector:

/docs/apr.html

        Defineanon-SSLHTTP/1.1Connectoronport8080

   -->

   

              connectionTimeout="20000"

              redirectPort="8443"/>

   

--A"Connector"usingthesharedthreadpool-->

   

--

   

              port="8080"protocol="HTTP/1.1"

              connectionTimeout="20000"

              redirectPort="8443"/>

   -->          

   

--DefineaSSLHTTP/1.1Connectoronport8443

        ThisconnectorusestheJSSEconfiguration,whenusingAPR,the

        connectorshouldbeusingtheOpenSSLstyleconfiguration

        describedintheAPRdocumentation-->

   

--

   

              maxThreads="150"scheme="https"secure="true"

              clientAuth="false"sslProtocol="TLS"/>

   -->

 

   

--DefineanAJP1.3Connectoronport8009-->

   

 

 

   

--AnEnginerepresentstheentrypoint(withinCatalina)thatprocesses

        everyrequest. TheEngineimplementationforTomcatstandalone

        analyzestheHTTPheadersincludedwiththerequest,andpassesthem

        ontotheappropriateHost(virtualhost).

        Documentationat/docs/config/engine.html-->

 

   

--YoushouldsetjvmRoutetosupportload-balancingviaAJPie:

           

   -->

   

 

     

--Forclustering,pleasetakealookatdocumentationat:

         /docs/cluster-howto.html (simplehowto)

         /docs/config/cluster.html(referencedocumentation)-->

     

--

     

     -->       

 

     

--Therequestdumpervalvedumpsusefuldebugginginformationabout

          therequestandresponsedatareceivedandsentbyTomcat.

          Documentationat:

/docs/config/valve.html-->

     

--

     

     -->

 

     

--ThisRealmusestheUserDatabaseconfiguredintheglobalJNDI

          resourcesunderthekey"UserDatabase". Anyedits

          thatareperformedagainstthisUserDatabaseareimmediately

          availableforusebytheRealm. -->

     

            resourceName="UserDatabase"/>

 

     

--Definethedefaultvirtualhost

          Note:

XMLSchemavalidationwillnotworkwithXerces2.2.

      -->

     

           unpackWARs="true"autoDeploy="true"

           xmlValidation="false"xmlNamespaceAware="false">

 

       

--SingleSignOnvalve,shareauthenticationbetweenwebapplications

            Documentationat:

/docs/config/valve.html-->

       

--

       

       -->

 

       

--Accesslogprocessesallexample.

            Documentationat:

/docs/config/valve.html-->

       

--

       

              prefix="localhost_access_log."suffix=".txt"pattern="common"resolveHosts="false"/>

       -->

     

   

 

5.修改Nginx配置文件nginx.conf,该文件位于Nginx根目录下的/conf下面。

①在#gzip on;后面加入下面配置:

upstreambackend{

                  serverlocalhost:

8080;

                  serverlocalhost:

8088;

                  ip_hash;

        }

        其中serverlocalhost:

8080为第一个Tomcat的启动地址,serverlocalhost:

8088为第二个Tomcat的启动地址,ip_hash用于做session同步。

②修改第一个server{}配置中的listen 80;改为新的端口号,因为我的本机80端口被IIS占用,因此将此处改为listen800;。

并将

location/{

           root  html;

           index index.htmlindex.htm;

       }

改为:

location/{

           root  html;

           index index.htmlindex.htm;

                           proxy_pass                 http:

//backend; 

          proxy_redirect             off;

          proxy_set_header           Host$host;

          proxy_set_header           X-Real-IP$remote_addr;

          proxy_set_header           X-Forwarded-For$proxy_add_x_forwarded_for;

          client_max_body_size       10m;

          client_body_buffer_size    128k;

          proxy_connect_timeout      90;

          proxy_send_timeout         90;

          proxy_read_timeout         90;

          proxy_buffer_size          4k;

          proxy_buffers              432k;

          proxy_busy_buffers_size    64k;

          proxy_temp_file_write_size 64k;

       }

其中proxy_pass参数和upstreambackend{}对应。

        经过上面这些步骤,负载均衡配置就完成,下面前分别启动两台tomcat,然后双击nginx根目录下的nginx.exe文件或者用startnginx启动nginx,打开浏览器,输入地址:

http:

//localhost:

800便可看到下面画面:

这说明已经成功跳转到Tomcat上面。

下面以来电秀具体项目为例,输入地址:

http:

//localhost:

800/ldxwebpersonal/personal/index/index.action

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 城乡园林规划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1