1. 正向代理和反向代理

  正向代理是一个位于客户端【用户A】和原始服务器【服务器B】之间的服务器【代理服务器Z】,为了从原始服务器取得内容,用户A向代理服务器Z发送一个请求并指定目标(服务器B),然后代理服务器Z向服务器B转交请求并将获得的内容返回给客户端。即代理服务器替代访问方【用户A】去访问目标服务器【服务器B】。客户端必须要进行一些特别的设置才能使用正向代理。当然前提是要知道正向代理服务器的IP地址,还有代理程序的端口。

    

  用单机tomcat搭建的网站,在比较理想的状态下能够承受的并发访问量在150到200左右。按照并发访问量占总用户数量的5%到10%这样计算,单点tomcat网站的用户人数在1500到4000左右。对于一个为全国范围提供服务的网站显然是不够用的,为了解决这个问题引入了负载均衡方法。负载均衡就是一个web服务器解决不了的问题可以通过多个web服务器来平均分担压力来解决,并发过来的请求被平均分配到多个后台web服务器来处理,这样压力就被分解开来。

  反向代理正好与正向代理相反,对于客户端而言代理服务器就像是原始服务器,并且客户端不需要进行任何特别的设置。客户端向反向代理的命名空间(name-space)中的内容发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求,并将获得的内容返回给客户端。

    

2. 安装及启动nginx

  Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
  下载 解压(注意:解压路径不要包含中文),双击nginx.exe即可运行,可到服务中查看。打开浏览器http://localhost:80显示如下页面说明启动成功。
    

如果启动不成功,说明80端口被占用,可通过 netstat  -ano|findstr ":80" 查看

     

可通过修改 nginx-1.12.2\conf\nginx.conf 里的默认的端口配置来启动

    

nginx.conf 中节点作用:

  • worker_processes:工作进程个数,可配置多个

  • worker_connections:单个进程最大连接数

  • server:每一个server相当于一个代理服务器

  • lister:监听端口,默认80

  • server_name:当前服务的域名,可以有多个,用空格分隔(我们是本地所以是localhost)

  • location:表示匹配的路径,这时配置了/表示所有请求都被匹配到这里

  • index:当没有指定主页时,默认会选择这个指定的文件,可多个,空格分隔

  • proxy_pass:请求转向自定义的服务器列表

  • upstream name{ }:服务器集群名称

nginx的三个常用命令:

启动nginx: start nginx
关闭nginx: nginx -s stop
重新加载配置文件: nginx -s reload //可以在不关闭nginx的情况下更新配置文件.

3. nginx负载均衡配置

使用两个tomcat服务器演示(已配置好且都能正常使用),由于两个tomcat版本不一样,可以直接展现,这里就先不添加项目了

配置 nginx-1.12.2\conf\nginx.conf

访问同一网址 http://localhost:80 可发现页面在两个tomcat中来回切换

也可设置权重

注意,每次修改完配置需要重启一下nginx。

4. 超时策略

如果集群中的某个服务器挂了,此时nginx分发请求到该服务器时,如果没有配置超时策略,会出现一段至少1分钟的等待,超过了客户端的响应时间,会造成客户端超时情况,使Nginx报499。

主要介绍如下几个参数:

  • proxy_connect_timeout:与服务器连接的超时时间,默认60s
  • proxy_timeout:nginx接收后端服务器的响应超时时间,默认值为10min,尽量取默认值
  • fail_timeout:当该时间内服务器没响应,则认为服务器失效,默认10s
  • max_fails:允许连接失败次数,默认为1

在nginx.conf中的配置:

设置客户端响应时间=proxy_connect_timeout + fail_timeout*max_fails,如我的客户端响应时间设置为3秒,那么超时策略配置如下

nginx安装(windows下)及配置的更多相关文章

  1. Nginx 安装以及反向代理配置(windows)

    安装 windows 下 Nginx 安装非常简单,下载地址 http://nginx.org/en/download.html. 选择红框这个,下载下来是个 zip 文件,解压.这时我们双击根目录的 ...

  2. Nginx + Tomcat Windows下的负载均衡配置

     Nginx + Tomcat Windows下的负载均衡配置 一.为什么需要对Tomcat服务器做负载均衡?    Tomcat服务器作为一个Web服务器,其并发数在300-500之间,如果超过50 ...

  3. Lua在Windows下的配置、安装、运行

    Windows下安装.运行Lua! 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) 1↓ 进入Lua官网:h ...

  4. Nginx 在windows下配合iis搭建负载均衡过程 [转]

    因为项目遇到大量图片存储问题,虽然现在我们图片还不是很多(目前在1T上下,预计增长速度每年1.3倍的增长速度),自己在思考如何有效地存储大量图片时,查找一些资料,看到了,有人使用 Nginx搭建服务器 ...

  5. Nginx在Windows平台的配置

    Nginx在Windows平台的配置 能够使用Nginx搭建Tomcat集群,并完成负载均衡. 1.什么是Nginx 2.为什么使用Nginx 背景: 互联网飞速发展的今天,大用户量高并发已经成为互联 ...

  6. nginx安装及负载均衡配置

    Nginx (“engine x”) 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器. Nginx 是由 Igor Sysoev 为俄罗斯访问量第二 ...

  7. dpm-release3.1在windows下的配置

    dpm-release3.1在windows下的配置 dpm是做目标检测objecjt detection的经典方法.dpm系列代码默认是在linux和mac下运行测试过的,windows下默认是不能 ...

  8. Windows下gvim配置

    Windows下gvim配置原作地:http://hi.baidu.com/leemoncc/blog/item/a6be15cf40d7ab31b600c806.html 0.准备软件及插件. (a ...

  9. Tomcat7.0.22在Windows下详细配置过程

    Tomcat7.0.22在Windows下详细配置过程 一.JDK1.7安装 1.下载jdk,下载地址:http://www.oracle.com/technetwork/java/javase/do ...

  10. Oracle 11g即时客户端在windows下的配置

    Oracle 11g即时客户端在windows下的配置 by:授客QQ:1033553122 instantclient-basic-nt-11.2.0.3.0.zip客户端压缩包为例 步骤 1. 假 ...

随机推荐

  1. windows 日志清理和设置

    Windows日志路径 c:/windows/system32/winevt/logs 这里的日志文件可以ctrl+a 选中后使用shift+delete进行删除,删不掉的可以点击跳过.   在“管理 ...

  2. liunx加载JX2410标准配置文件

  3. Delphi 执行线程对象

  4. 前端基础(四):BOM和DOM

    前戏 到目前为止,我们已经学过了JavaScript的一些简单的语法.但是这些简单的语法,并没有和浏览器有任何交互. 也就是我们还不能制作一些我们经常看到的网页的一些交互,我们需要继续学习BOM和DO ...

  5. python学习笔记:安装boost python库以及使用boost.python库封装

    学习是一个累积的过程.在这个过程中,我们不仅要学习新的知识,还需要将以前学到的知识进行回顾总结. 前面讲述了Python使用ctypes直接调用动态库和使用Python的C语言API封装C函数, C+ ...

  6. HTML5常用的语义化标签

    快速查询 article | aside | nav | section | header | footer 架构预览 nav 定义导航链接的部分 在页脚显示一个站点的导航链接,如首页.服务信息页面. ...

  7. java线程基础巩固---ThreadGroup API学习

    ThreadGroup初识: 这次来学习一个新的线程概念---线程组(ThreadGroup),首先从JDK文档中对它进行一个大致的了解,如下: 下面开始用代码来进行说明,对于一个线程来说如果没有指定 ...

  8. Python数据库连接池 -组件 DBUtils

    DBUtils是Python的一个用于实现数据库连接池的模块 此连接池有两种连接模式: DBUtils提供两种外部接口: PersistentDB :提供线程专用的数据库连接,并自动管理连接. Poo ...

  9. Sklearn分类树在合成数集上的表现

    小伙伴们大家好~o( ̄▽ ̄)ブ,今天我们开始来看一下Sklearn分类树的表现,我的开发环境是Jupyter lab,所用的库和版本大家参考: Python 3.7.1(你的版本至少要3.4以上) S ...

  10. Java8-Stream-No.04

    import java.util.OptionalInt; import java.util.stream.IntStream; public class Streams4 { public stat ...