`
momodog
  • 浏览: 104752 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Nginx+Tomcat 负载均衡集群方案

 
阅读更多
该方案是我之前做过的一个项目生产应用的,目前运行良好,如何您生产使用,请先做好测试。

系统架构图

下载软件包

[root@Nginx-node1 src]# cd /usr/local/src
[root@Nginx-node1 src]# wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.02.tar.gz
[root@Nginx-node1 src]# wget http://nginx.org/download/nginx-0.8.34.tar.gz
[root@Nginx-node1 src]# wget http://www.keepalived.org/software/keepalived-1.1.19.tar.gz
[root@Nginx-node1 src]# chmod +x *
[root@Nginx-node1 src]# ls -l
-rwxr-xr-x 1 root root  241437 10-01 17:25 keepalived-1.1.19.tar.gz
-rwxr-xr-x 1 root root  621534 03-04 01:00 nginx-0.8.34.tar.gz
-rwxr-xr-x 1 root root 1247730 03-31 16:31 pcre-8.02.tar.gz

安装Nginx

安装Nginx依赖的
[root@Nginx-node1 src]# tar zxvf pcre-8.02.tar.gz
[root@Nginx-node1 src]# cd pcre-8.02
[root@Nginx-node1 pcre-8.02]# ./configure
[root@Nginx-node1 pcre-8.02]# make && make install
安装Nginx
[root@Nginx-node1 pcre-8.02]# cd ../
[root@Nginx-node1 src]# tar zxvf nginx-0.8.34.tar.gz 
[root@Nginx-node1 src]# cd nginx-0.8.34
[root@Nginx-node1 nginx-0.8.34]# ./configure --prefix=/usr/local/nginx \
> --with-http_stub_status_module \
> --with-http_ssl_module 
[root@Nginx-node1 nginx-0.8.34]# make && make install
[root@Nginx-node1 ~]# vim /usr/local/nginx/conf/nginx.conf

Nginx 配置文件

user  website website;
worker_processes  4;

error_log  logs/error.log;
pid        logs/nginx.pid;
worker_rlimit_nofile 65535;

events {
    use epoll;
    worker_connections  10240;
}


http {
    include       mime.types;
    default_type  application/octet-stream;
    server_names_hash_bucket_size 128;
    client_header_buffer_size 32k;
    large_client_header_buffers 4 32k;
    client_max_body_size 8m;
    sendfile on;
    tcp_nopush     on;
    keepalive_timeout 60;
    tcp_nodelay on;
    
    gzip on;
    gzip_min_length  1k;
    gzip_buffers     4 16k;
    gzip_http_version 1.0;
    gzip_comp_level 2;
    gzip_types       text/plain application/x-javascript text/css application/xml;
    gzip_vary on;

    server_tokens off;
    	
upstream web  #设置web集群池
{
ip_hash; #
server 192.168.0.141:8080;
server 192.168.0.142:8080;
server 192.168.0.143:8080;
server 192.168.0.144:8080;
server 192.168.0.145:8080;
server 192.168.0.146:8080;

}


upstream wap  #设置wap集群池
{
ip_hash;
server 192.168.0.151:8080;
server 192.168.0.152:8080;
server 192.168.0.153:8080;
server 192.168.0.154:8080;
server 192.168.0.155:8080;
server 192.168.0.156:8080;

}

    server {
        listen       80;
        server_name  www.***.com;

        location / {
            root   html;
            index  index.html index.htm;
	    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;
	    proxy_pass http://web;  #注意设置在这里
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }

server {
        listen       80;
       server_name  wap.***.com;

        location / {
            root   html;
            index  index.html index.htm;
            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;
            proxy_pass http://wap;  #注意:设置在这里
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }
}

Nginx Upstream支持的分配方法

nginx的upstream目前支持5种方式的分配

  • 1.轮询(默认)

  每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

  • 2.weight (带权重的)

  指定轮询权重,weight和访问比率成正比,用于后端服务器性能不均的情况。

  例如:

upstream bakend {
server 192.168.0.141 weight=10;
server 192.168.0.142 weight=10;
}
  • 3.ip_hash

  每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。

  例如:

upstream bakend {
ip_hash;
server 192.168.0.151:80;
server 192.168.0.152:80;
}
  • 4.fair(第三方)

  按后端服务器的响应时间来分配请求,响应时间短的优先分配。

upstream backend {
server server1;
server server2;
fair;
}
  • 5.url_hash(第三方)

  按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。

  例:在upstream中加入hash语句,server语句中不能写入weight等其他的参数,hash_method是使用的hash算法

<code> upstream backend { server squid1:3128; server squid2:3128; hash $request_uri; hash_method crc32; }

  

  • 设置说明:

  每个设备的状态设置为:

  1.down 表示单前的server暂时不参与负载

  2.weight 默认为1.weight越大,负载的权重就越大。

  3.max_fails :允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误

  4.fail_timeout:max_fails次失败后,暂停的时间。

  5.backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。

  nginx支持同时设置多组的负载均衡,用来给不用的server来使用。

  client_body_in_file_only 设置为On 可以讲client post过来的数据记录到文件中用来做debug

  client_body_temp_path 设置记录文件的目录 可以设置最多3层目录

  location 对URL进行匹配.可以进行重定向或者进行新的代理 负载均衡

<!-- wikipage stop -->

  • 大小: 88.6 KB
分享到:
评论

相关推荐

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

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

    linux下的nginx+tomcat负载均衡简单原理

    Linux 下的 Nginx+Tomcat 负载均衡简单原理是指通过 Nginx 服务器来实现 Tomcat 服务器集群的负载均衡,以提高网站的可用性和性能。本文将对 Linux 下的 Nginx+Tomcat 负载均衡简单原理进行详细的介绍。 一、拓扑...

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

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

    Nginx+Tomcat负载均衡

    首先大家注意: 本文章中没有session共享,关于session共享我会在下一篇中讲解,先实现Nginx+tomcat负载均衡再实现session共享。 从网上查了好多资料,多走了很多弯路,现在把自己成功的方法拿出来与大家分享。 ...

    Nginx+Tomcat+Redis搭建均衡负载集群

    这个架构利用Nginx作为反向代理和负载均衡器,Tomcat作为Java应用服务器处理业务逻辑,而Redis则用作缓存系统以提升数据访问速度。下面我们将详细探讨这些组件的作用及其在集群环境中的配置与协同工作。 **Nginx** ...

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

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

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

    本文将详细介绍如何在Windows环境下进行Nginx+Tomcat负载均衡及集群的搭建过程,适合初学者参考。 #### 二、准备工作 1. **下载Nginx** - 访问官方下载页面:[http://nginx.org/en/download.html]...

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

    【Nginx+Tomcat负载均衡集群部署】 在IT领域,构建高可用和高并发的Web服务是至关重要的。Nginx与Tomcat的组合是一个常见的解决方案,因为Nginx作为反向代理和负载均衡器,能有效分发流量到多个后端Tomcat服务器,...

    Nginx+KeepAlived+Tomcat负载架构

    ### Nginx+KeepAlived+Tomcat负载架构详解 #### 一、概述 随着互联网应用的日益增多,单一服务器已经难以满足高并发、高可用性的需求。因此,越来越多的企业开始采用集群技术来提高系统的稳定性和扩展性。本文将...

    Nginx+Tomcat负载均衡配置教程

    ### Nginx+Tomcat负载均衡配置教程 #### 一、Nginx 安装与配置 **1. 下载并安装Nginx** - **下载Nginx**:前往Nginx官方网站下载适合您操作系统的最新版本。推荐下载稳定版以确保运行稳定。 - **解压文件**:将...

    nginx+tomcat 负载均衡简易配置与动静分离

    在构建高性能、高可用性的Web服务时,"nginx+tomcat 负载均衡简易配置与动静分离"是一个常见的架构模式。Nginx作为一个轻量级的反向代理服务器,通常用于处理静态内容和实现负载均衡,而Tomcat作为Java应用服务器,...

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

    在配置Nginx+Tomcat的负载均衡集群时,主要步骤包括以下几个方面: 1. **安装Nginx和Tomcat**:在Windows上,你可以从官方网站下载Nginx和Tomcat的安装包,按照指南进行安装。确保Nginx和所有Tomcat实例在同一网络...

    Windows+Nginx+Tomcat做负载均衡同时实现session共享Demo

    总之,“Windows+Nginx+Tomcat做负载均衡同时实现session共享Demo”是一个实践性强的教学资源,它涵盖了Web服务集群中的关键技术和最佳实践,对于学习和提升系统架构能力非常有帮助。通过深入理解和实践这个Demo,...

    Nginx+Tomcat7+Mencached负载均衡集群部署

    Nginx+Tomcat7+Mencached负载均衡集群部署,自己写的一个session和cookie管理包.

    Nginx+tomcat+redis

    - **负载均衡**:Nginx可以基于多种策略(如轮询、最少连接、IP哈希等)分配请求到不同的Tomcat实例,从而实现负载均衡,提高系统的可用性和响应速度。 - **静态资源处理**:Nginx对静态文件(如CSS、JavaScript、...

    nginx+redis负载均衡、session共享

    在构建高性能、高可用的Web服务时,"nginx+redis负载均衡、session共享"是一个常见的解决方案。这个方案结合了Nginx的反向代理和负载均衡能力,以及Redis的内存数据存储和分布式特性,用于处理高并发场景下的HTTP...

    Nginx+tomcat 实现负载均衡session共享demo

    本教程将详细讲解如何通过`Nginx`实现`Tomcat`集群的负载均衡,并实现`session`共享。 首先,我们要理解负载均衡的基本概念。负载均衡是通过将工作负载分散到多个计算资源,以优化资源使用、最大化吞吐量、最小化...

    nginx+tomcat+memcached集群和负载均衡所有资源包

    nginx+tomcat+memcached集群和负载均衡所有资源包,具体集群方法请参见博文:http://blog.csdn.net/l1028386804/article/details/48289765

    nginx+tomcat+memcached负载均衡集群搭建许jar包大全

    Tomcat要支持memcached管理Session,需要调用一些jar库文件如下(网上有的文章中可能所说的jar包不全,或者版本不样的会报错,但这里我已经经过验证了): 1) couchbase-client-1.2.2.jar 2) javolution-5.5.1....

    nginx+tomcat+redis完成session共享

    1. **Nginx**:Nginx是一款高性能的反向代理服务器,通常用作负载均衡器。它能够接收用户的HTTP请求,并根据预设策略将请求转发到后端的Tomcat服务器。在session共享场景中,Nginx可以配置为将带有特定session ID的...

Global site tag (gtag.js) - Google Analytics