`
cms163
  • 浏览: 69704 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

Nginx与Tomcat6集群

阅读更多

Nginx与Tomcat6集群
Tomcat6集群配置
  参考文档 http://tomcat.apache.org/tomcat-6.0-doc/
  Tomcat1 /home/web/tomcat1 Server_port:8005 Conn_port:7518 Conn_AJP13_port:8009 Conn_redirectPort:8443
  <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">
  Tomcat2 /home/web/tomcat2 Server_port:8006 Conn_port:7519 Conn_AJP13_port:8010 Conn_redirectPort:8444
  <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat2">
 
  Tomcat1的server.xml文件如下:(Tomcat2类似)
    <?xml version='1.0' encoding='utf-8'?>
    <Server port="8005" shutdown="SHUTDOWN">   
      ...
        <Connector port="7518" protocol="HTTP/1.1"
                   maxHttpHeaderSize="8192" connectionTimeout="20000"
                   disableUploadTimeout="true" enableLookups="false"
                   redirectPort="8443" maxThreads="600"
                   minSpareThreads="25" maxSpareThreads="75" acceptCount="100" />
        <Connector port="8009" protocol="AJP/1.3"
                   maxHttpHeaderSize="8192" connectionTimeout="20000"
                   disableUploadTimeout="true" maxThreads="600"
                   minSpareThreads="25" maxSpareThreads="75"
                   enableLookups="false" redirectPort="8443" />   
        <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">   
          ... 
            <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
                     channelSendOptions="6">   
              <Manager className="org.apache.catalina.ha.session.BackupManager"
                       expireSessionsOnShutdown="false"
                       notifyListenersOnReplication="true"
                       mapSendOptions="6"/>
              <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="5000"
                          selectorTimeout="100"
                          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"/>
                <Interceptor className="org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor"/>
              </Channel>   
              <Valve className="org.apache.catalina.ha.tcp.ReplicationValve"
                     filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/>
   
              <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.ClusterSessionListener"/>
            </Cluster></Host></Engine></Service></Server>
  Tomcat6的集群主要作用是session的复制,如果Nginx用ip_hash方式固定某IP访问,则Tomcat的集群无需配置。
  但若某IP固定访问的一后端服务器宕机,则此IP下所有访问session丢失。
           
Nginx转发设置
  Nginx的Nginx.conf设置如下:
    user  nobody;
    worker_processes  2;   
    error_log  logs/error.log  notice;
    pid        logs/nginx.pid;  
    worker_rlimit_nofile 65535;
    events {
        use epoll;
        worker_connections  10240;
    }   
    http {
        include       mime.types;
        default_type  application/octet-stream;   
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';   
        access_log  logs/access.log  main;   
        client_header_timeout 3m;
        client_body_timeout 3m;
        send_timeout 3m;   
        sendfile        on;
        tcp_nodelay on;  
        keepalive_timeout  65;   
        upstream servers1 {
            server 192.168.1.190:7518 weight=1;
            server 192.168.1.190:7519 weight=1;
        }   
        server {
            listen       80;
            server_name  localhost;   
            charset utf-8;   
            access_log  logs/host.access.log  main;       
            location / {
                root   html;
                index  index.jsp index.html index.htm;
            }   
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }   
            location /mygold {
                    proxy_pass http://servers1;
                    proxy_set_header X-Real-IP $remote_addr;
                    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                    proxy_set_header Host $http_host;
                    client_max_body_size    100m;
                    proxy_connect_timeout   60;
                    #proxy_busy_buffers_size 2048k;
            } } }
  Nginx转发会自动识别后端服务器的存活状态。一旦发现其中一台宕机,会把请求转发给其它服务器。
           
应用程序的session同步
  修改程序目录WEB-INF下的web.xml:在</web-app>前加如下行:
  <distributable/>即可实现session同步
  session固定,ip_hash方式.
    ip_hash方式仅能用ip这个因子来分配后端,即针对同一IP固定访问后端一服务器.
    配置在upstream内加一行 ip_hash; 不过以下两种方式中慎用:
      nginx不是最前端的服务器。
      nginx的后端还有其它方式的负载均衡。
  另一种方式是用模块upstream_hash. 能用作url_hash.

分享到:
评论

相关推荐

    Nginx+tomcat配置集群负载均衡实例

    配置Nginx+Tomcat集群负载均衡的第一步是安装Nginx和多个Tomcat实例。在多台服务器上部署Tomcat,形成一个集群,确保服务的高可用性。每台服务器上的Tomcat实例都需要配置相同的应用,以处理相同类型的请求。 接...

    nginx 配置tomcat8集群

    nginx 配置tomcat8集群

    Nginx和Tomcat集群环境部署

    ### Nginx与Tomcat集群环境部署详解 #### 一、背景介绍 随着互联网应用规模的不断增大,单个服务器已经难以满足日益增长的访问需求。为了提高系统的可用性和扩展性,采用集群技术来实现负载均衡和服务冗余变得至关...

    Nginx+tomcat配置集群负载均衡

    然后,对于**Tomcat集群**,你需要在每个Tomcat实例上配置相同的Context,以便处理相同的应用。这可以通过在`server.xml`文件中的`Host`元素中定义`appBase`和`unpackWARs`属性来实现: ```xml &lt;!-- ... --&gt; ```...

    基于ssm+shiro+redis+nginx tomcat服务器集群管理项目.zip

    基于ssm+shiro+redis+nginx tomcat服务器集群管理项目 基于ssm+shiro+redis+nginx tomcat服务器集群管理项目 基于ssm+shiro+redis+nginx tomcat服务器集群管理项目 基于ssm+shiro+redis+nginx tomcat服务器集群管理...

    nginx+tomcat+redis集群部署环境

    nginx+tomcat+redis集群部署环境,包括nginx tomcat redis及集群部署所需jar包,jedis-2.6.1.jar,commons-pool2-2.2.jar,tomcat-redis-session-manager1.2.jar 具体步骤可以参见我的博文

    Liunx 下 nginx+tomcat 集群建设

    总结来说,Linux环境下通过Nginx+Tomcat集群建设,可以构建出一个高效、可扩展的Web服务架构,同时利用Nginx的反向代理功能和负载均衡策略,确保系统的稳定性和性能。在实际操作中,还需要根据具体业务需求进行定制...

    nginx,tomcat集群,session共享

    nginx,tomcat集群,session共享,基于memcache 包含nginx配置,tomcat配置,以及tomcat所需要的jar 不包含nginx,tomcat,jdk,memcache的安装

    Keepalived+Nginx+Tomcat 高可用集群搭建实战记录

    Keepalived 是一种高可用性解决方案,可以与 Nginx 和 Tomcat 配合使用来实现高可用集群。下面是 Keepalived+Nginx+Tomcat 高可用集群搭建的实战记录。 Keepalived 简介 Keepalived 是一种基于 Linux 的高可用性...

    nginx+tomcat集群配置文件

    nginx+tomcat集群配置文件

    nginx_tomcat8_redis负载均衡demo

    在这个“nginx_tomcat8_redis负载均衡demo”中,我们将探讨如何利用Nginx作为反向代理服务器,Tomcat作为应用服务器集群,以及Redis作为会话持久化存储,构建一个高效且可扩展的负载均衡解决方案。 首先,Nginx是一...

    nginx+tomcat负载、集群简单搭建

    ### Nginx+Tomcat 负载均衡与集群简单搭建 #### 一、概述 在互联网技术领域中,随着用户访问量的增加,单一服务器往往难以满足需求,因此需要通过负载均衡和集群技术来提高系统的稳定性和可用性。本文将详细介绍...

    keepalived+Nginx+tomcat 搭建集群

    keepalived+Nginx+Tomcat 集群搭建** 在高并发场景中,仅靠单台 Nginx 可能不足以应对,这时可以结合 keepalived 实现高可用和负载均衡。Keepalived 提供 VRRP 协议来监控 Nginx 主备节点状态,当主节点故障时,...

    Nginx+tomcat负载均衡集群session复制 windos

    本文将详细介绍如何在Windows环境下,利用Nginx作为反向代理服务器,与Tomcat集群配合实现负载均衡,并进行session复制,确保用户会话在不同服务器之间的一致性。 首先,Nginx是一款轻量级、高性能的HTTP和反向代理...

    Nginx+Tomcat负载均衡企业实战.docx

    本文档主要介绍了 Nginx+Tomcat 负载均衡的企业实战,涵盖了从0开始构建 Nginx WEB 平台、Tomcat WEB 集群、代码发布、Nginx 负载均衡 Tomcat 集群、动静分离、Rewrite 实战等方面的内容。 一、从 0 开始构建 Nginx...

    nginx+tomcat集群部署与负载均衡

    ### Nginx+Tomcat集群部署与负载均衡 #### 版本信息与集群及负载均衡概念 在深入了解如何实现Nginx与Tomcat集群的部署和负载均衡之前,我们需要先了解一些基本的概念以及版本信息。 - **集群**:通常指一组计算机...

    nginx+tomcat负载均衡集群思路步骤过程.docx

    Nginx与Tomcat的组合是一个常见的解决方案,因为Nginx作为反向代理和负载均衡器,能有效分发流量到多个后端Tomcat服务器,提高系统性能和稳定性。以下是对【标题】“nginx+tomcat负载均衡集群思路步骤过程.docx”和...

    Nginx_Tomcat集群案例

    windowXP下搭建nginx-1.7.10和apache-tomcat-8.0.18的集群 已经配置好,下载后直接启动三个tomcat和nginx,然后访问http://localhost/即可。

    tomcat+nginx集群

    6. 启动Nginx和Tomcat,监控服务器状态,确保一切正常运行。 总的来说,"tomcat+nginx集群"的架构提供了强大的可扩展性和高可用性,适用于处理大规模的Web应用流量。通过合理地配置和优化,可以有效提升系统性能,...

Global site tag (gtag.js) - Google Analytics