Nginx占有内存少,并发能力强,其实Nginx的并发能力确实在同类型的网页伺服器中表现较好.眼下中国大陆使用Nginx站点用户有:新浪,网易,腾讯等.

本文主要是基于Nginx搭建tomcat集群.

环境:

Win8.1,JDK 1.6 , Nginx1.9.3

Tomcat 7.0.63(两个tomcatserver)

结构:

一、Nginx之反向代理

1、Nginx配置:

  1. upstreamlocahost{
  2. #ip_hash;
  3. server192.168.24.17:8080 weight=1;
  4. server192.168.24.43:8080 weight=2;
  5. }

2、效果:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

反向代理:对于client而言,它就像是演示server,而且client不须要进行不论什么特别的设置.client反向代理的命名空间中的内容发送普通请求,接着反向代理将推断向何处转交请求,并将获得的内容返回给client,就像这些内容原本就是它自己的一样.前面博客:Nginx是什么?里面介绍了.

二、Nginx之负载均衡

1、实例

a.Nginx配置

  1. upstream192.168.24.17{
  2. #ip_hash;
  3. server192.168.24.17:8080 weight=1;
  4. server192.168.24.43:8080 weight=2;
  5. }
  6. #gzip on;
  7.  
  8. server {
  9. listen 8888;
  10. server_name 192.168.24.17;
  11.  
  12. #charset koi8-r;
  13.  
  14. #access_log logs/host.access.log main;
  15.  
  16. location / {
  17. root html;
  18. index index.html index.htm;
  19. proxy_pass http://192.168.24.17;
  20.  
  21. proxy_connect_timeout1;
  22. proxy_send_timeout30;
  23. proxy_read_timeout60;
  24. }
  25.  
  26. error_page 500 502 503 504 /50x.html;
  27. location = /50x.html {
  28. root html;
  29. }

b.配置说明:

a.Weight:权重,值越大,命中率越高

b.上面标红的地方:192.168.24.17,这三处要一致才干实现负载均衡的效果.

c.实验效果:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

说明:这个IP以及port号是nginx设置的名称以及port号.訪问后能分别调用到后端不同的server.实现负载均衡效果.进一步能够看出本实例使用的是轮询的方式,也就是负载均衡默认的方式.

2.原理

1).upstream负载均衡模块说明:

upstream是Nginx的HTTP
Upstream模块,这个模块通过一个简单的调度算法来实现clientIP到后端server的负载均衡.在上面的设定中,听过upstream指令指定了一个负载均衡的名称为192.168.24.17.这个名称能够随意指定,在后面须要用到的地方直接调用就可以.

2).updtream支持的负载均衡算法

Nginx的负载均衡模块眼下支持4种调度算法.

  1. 轮询(默认).每一个请求按时间顺序逐一分配到不同的后端server,假设后端某台server宕机,故障系统被自己主动提出,使用户訪问不受影响.Weight指定轮询权值,Weight值越大,分配到的訪问几率越高,用于后端每一个server性能不均的情况下.
  1. ip_hash 每一个请求按訪问IP的hash结果分配,这样来自同一个IP的訪客固定訪问一个后端server,有效攻克了动态网页存在的session共享问题.
  2. fair这是比上面两个更加智能的负载均衡算法.这样的算法能够根据页面大小和载入时间长短智能地进行负载均衡,也就是根据后端server的响应时间来分配请求,响应时间短的优先分配.Nginx本身是不支持fair的,假设须要使用这样的调度算法,必须下载Nginx的upstream_fair模块.
  3. url_hash此方法按訪问url的hash结果来分配请求,使每一个url定向到同一个后端server,能够进一步提高后端缓存server的效率.Nginx本身是不支持url_hash的,假设须要使用这样的调度算法,必须安装Nginx的hash软件包.

3).upstream支持的状态參数

在HTTP Upstream模块汇总,能够通过server指令指定后端server的IP地址和port,同一时候还能够设定每一个后端server在负载均衡调度中的状态.经常使用的状态有:

  1. down,表示当前的server临时不參与负载均衡.
  2. backup,预留的备份机器.当其它全部的非backup机器出现问题或者忙的时候,才会请求backup机器,因此这才记起的眼里最轻.
  3. max_fails,同意请求失败的次数,默觉得1.当超过最大次数时,返回proxy_next_upstream模块定义的错误.
  4. fail_timeout,在经历了max_fails次失败后,暂停服务时间.max_fails能够和fail_timeout一起使用.

注:当负载调度算法为ip_hash时,后端server在负载均衡调度中的状态不能使weight和backup.

通过这样的方式,当我们的站点訪问量越来越大时,我们就能承受很多其它的压力,而且可以动态的加入server.配置负载均衡非常easy,那么怎样实现多台server之间session的共享呢?下篇继续介绍.

注意:nginx放到中文文件夹下,启动时会有问题.

打印出来的日志:

[emerg] 10744#10916: CreateFile()"E:\02 Java内容学习汇总\Nginx\nginx-1.4.7/conf/nginx.conf"failed
(1113: No mapping for the Unicode character exists in the targetmulti-byte code page)

Nginx系列(五)--nginx+tomcat实现负载均衡的更多相关文章

  1. Nginx加多个tomcat实现负载均衡,动静分离

    一:Nginx+Tomcat的动静分离 所谓动静分离就是通过nginx(或apache等)来处理用户端请求的图片.html等静态的文件,tomcat(或weblogic)处理jsp.do等动态文件,从 ...

  2. 死磕nginx系列--使用upsync模块实现负载均衡

    问题描述 nginx reload是有一定损耗的,如果你使用的是长连接的话,那么当reload nginx时长连接所有的worker进程会进行优雅退出,并当该worker进程上的所有连接都释放时,进程 ...

  3. Tomcat(五):nginx/httpd + tomcat及负载均衡tomcat

    */ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...

  4. Nginx 服务器 之Nginx与tomcat实现负载均衡

      本文讲解我们如何使用Nginx做反向带服务器,实现nginx与tomcat服务器集群做负载均衡. 一.nginx与tomcat实现负载均衡 1.在/usr/local/ngnix/conf  创建 ...

  5. Nginx+Tomcat+Memcached负载均衡集群服务搭建

    操作系统:CentOS6.5  本文档主要讲解,如何在CentOS6.5下搭建Nginx+Tomcat+Memcached负载均衡集群服务器,Nginx负责负载均衡,Tomcat负责实际服务,Memc ...

  6. nginx+tomcat+redis负载均衡及session共享

    概述 本文档是用来详细描述 nginx+tomcat+redis负载均衡实现session共享 所需软件及下载地址 软件名称 下载地址 功能说明 Nginx-v1.6.0 http://nginx.o ...

  7. Linux 下配置 nginx + 两个 tomcat 的负载均衡

    前提:已经安装了 nginx 和两个 tomcat 1.修改 nginx.conf 配置文件    1)在 http{} 节点之间添加 upstream 配置 2)修改 nginx 的监听端口,默认是 ...

  8. 使用 Nginx + Tomcat 搭建负载均衡

    负载均衡 建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽.增加吞吐量.加强网络数据处理能力.提高网络的灵活性和可用性. 负载均衡,英文名称为Load Balance, ...

  9. [Linux]nginx tomcat做负载均衡

    之前使用nginx做过web反向代理,没有做过负载均衡,今天有个同学须要做tomcat的负载均衡,我也研究下. 一共是2个机器,一个物理机(win7)上面部署2个tomcat,使用不同的port启动. ...

  10. nginx+tomcat实现负载均衡集群

    一台tomcat站点由于可能出现单点故障及无法应付过多客户复杂多样的请求等问题,不能单独应用于生产环境下 所以需要一套可靠的解决方案来完善web站点架构 而Nginx只能访问静态页面,如果需要动态需要 ...

随机推荐

  1. 迅为4412全新升级版|3G开发板|4G开发板

    iTOP-Exynos4412开发板采用 Exynos4412的主芯片,具有更高的主频和更丰富外设,配置 2GB 双通道 DDR3的内存及 16GB 存储,支持3G/G模块.GPS模块.陀螺仪.HDM ...

  2. 面试之Linux

    Linux的体系结构 体系结构主要分为用户态(用户上层活动)和内核态 内核:本质是一段管理计算机硬件设备的程序 系统调用:内核的访问接口,是一种不能再简化的操作 公用函数库:系统调用的组合拳 Shel ...

  3. 【PS切图】前端工程师必备,但又无需精通的一项技能。

    前端主要从事一些代码开发工作,PS使用是前端工程师必备,但又无需精通的一项技能. 前端切图四大面板:在“窗口”菜单下开启 1,信息(手动开启)2,字符(手动开启)3,历史记录(手动开启)4,图层(默认 ...

  4. jquery attr的属性

    在JS中设置节点的属性与属性值用到setAttribute(),获得节点的属性与属性值用到getAttribute(),而在jquery中,用一个attr()就可以全部搞定了,赞一个先 ^^ jque ...

  5. 初识Python(windows)——下载、安装、使用

    Table of Contents 1. Why is Python 1.1. Python和R 2. python的下载与安装 2.1. python的版本选择 2.2. python的下载 2.3 ...

  6. 简谈Redis

    1.为什么使用redis 分析:博主觉得在项目中使用redis,主要是从两个角度去考虑:性能和并发.当然,redis还具备可以做分布式锁等其他功能,但是如果只是为了分布式锁这些其他功能,完全还有其他中 ...

  7. 1 SQL 数据库和SQL

    1 数据库和SQL 1-1 数据库是什么 将大量数据保存起来,通过计算机加工而成的可以进行高效访问的数据集合称为数据库(Database, DB). 法则 用来管理数据库的计算机系统称为数据库管理系统 ...

  8. delphi clipboard

    判断clipboard里的格式: if   CliPBoard.HasFormat(CF_TEXT)   then        EdIT1.Text   :=   CliPBoard.AsText ...

  9. 20Spring切面的优先级

    通过使用@order注解指定切面的优先级,值越小,优先级越高代码: package com.cn.spring.aop.impl; //加减乘除的接口类 public interface Arithm ...

  10. win10下安装psql9,后无法访问数据库引擎

    1.修改安装文件兼容性,并启动安装 2.安装后 修改psql control center快捷方式的启动文件兼容性 3.修改 start workgroup engine 快捷方式的启动文件兼容性 一 ...