1. Nginx基本概念
    1. 是什么,做什么事情
      1. 高性能的HTTP和反向代理web服务器,特点占有内存小,并发能力强,
      2. Nginx专为性能优化而开发,最高支持50000个并发连接数
    2. 反向代理
      1. 正向代理  在客户端()浏览器)配置代理服务器,通过代理服务器进行访问
      2. 反向代理  客户端对代理是无感知的,客户端不需要任何配置,反向代理服务器于服务器作为一个整体.客户端认为反向代理服务器就是目标服务器.暴露的是反向代理服务器,隐藏了真实服务器.
    3. 负载均衡
      1. 单个服务器解决不了,我们 增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的情况改为将请求分发到多个服务器上,将负载分发到不同的服务器,也就是我们说的负载均衡.
    4. 动静分离
      1. 为了加快网站的解析速度,可以把动态页面和静态页面由不同的服务器来解析,加快解析速度,降低原来单个服务器的压力.
  2. Nginx安装,常用命令和配置文件
    1.  在Linux系统中安装Nginx
      1. 使用远程连接工具连接Linux
      2. 进入Nginx官网下载
      3. 安装编译工具及库文件  yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel
      4. 安装PCRE 作用是让Nginx支持Rewrite功能 
        1. 进入要安装的目录  例如 cd /usr/local/
        2. wget http://downloads.sourceforge.net/project/pcre/8.35/pcre-8.35.tar.gz
        3. tar -zxvf pcre-8.35.tar.gz
        4. 进入安装包目录  cd pcre-8.35
          1. ./configure
          2. make && make install
          3. 查看版本  pcre-config --version
      5. 上传Nginx 或  wget http://nginx.org/download/nginx-1.6.2.tar.gz
      6. tar zxvf nginx-1.6.2.tar.gz
      7. 进入安装包目录
        1. ./configure
        2. make && make install
      8. 安装成功后,在usr 多出一个文件夹local/nginx ,在Nginx下sbin启动脚本
      9. 进行访问 开启防火墙
    2. Nginx常用命令
      1. ./nginx -v
      2. ./nginx
      3. ./nginx -s stop
      4. ./nginx - s reload
    3. Nginx配置文件
      1. 第一部分  全局块
        1. 从配置文件开始到events块之间的内容,主要会设置一些影响Nginx服务器整体运行的配置命令,
        2. 比如 work processes  1 ;表示Nginx处理并发的数量,值越大,可以支持的处理并发量越多,也看硬件
      2. 第二部分   events块
        1. 影响Nginx服务器和用户网络连接
      3. 第三部分   HTTP全局块
        1. Nginx服务器中配置中最频繁的部分、代理 、缓存、日志定义绝大部分功能和第三方模块的配置都在这里
        2. HTTP块包含 HTTP全局块  和server块
  3. Nginx配置实例1-反向代理
    1. 实现效果
      1. 打开浏览器,在浏览器输入地址www.baidu.com跳转到Linux系统Tomcat主页面
    2. 具体实现
      1. 准备工作  在Linux中安装Tomcat,使用默认端口8080
    3. 从Windows浏览器输入网址  到Nginx 转发到Tomcat(Windows的host文件进行配置 配置域名映射的IP地址)
    4. 具有配置
      1. 在 C:\Windows\System32\drivers\etc的host文件中添加                      前面IP地址  后面域名(www.baidu.com.)
      2. 在Nginx的配置文件中
        1. 在server下 默认80端口处 更改server地址为Linux的IP
        2. 在server下delocation 中添加 proxy_pass http://127.0.0.1:8080
    5. 启动Nginx 进行测试
  4. Nginx配置实例2-负载均衡
    1. 实现效果
      1. 浏览器地址栏输入地址http://192.168.17.129/zjc/a.html,负载均衡效果,平均到8080和8081端口中,
    2. 准备工作
      1. 准备两台Tomcat服务器,一台8080,一台8081
      2. 在两台Tomcat里面webapps目录中,创建名称zjc文件夹,在zjc文件夹中创建页面a.html,用于测试
    3. 在Nginx的配置文件中进行负载均衡配置
      1. 在http块中加上
      2. 在location 进行配置servername 改为IP 然后修改 proxy_pass
      3. Nginx的负载均衡策略
        1. 轮询(默认)
        2. weight 权重 默认1  越大分配客户端越多
        3. ip_hash  每个请求按访问IP的hash结果分配,一个访客对应一个后端服务器,可以及解决session问题.
        4. fair(第三方)  按照后端服务器的响应时间来分配请求,响应时间短得优先分配.
  5. Nginx配置实例3-动静分离
    1. Tomcat处理动态资源,  Nginx通过location处理静态资源
    2. 动态和静态文件混合在一起发布,通过location 指定不同后缀名进行区分
    3. 实例:
      1. 创建文件夹 data 
        1. 在data中创建image 里面放 1.jpg
        2. 在data中创建wwww里面放 a.html
      2. 更改配置
      3. 在浏览器中输入地址http://192.168.17.129/image/01.jpg
      4. 因为配置文件中autoindex on; 点击就显示图片
      5. 在浏览器中输入地址http://192.168.17.129/wwww/a.html
  6. Nginx配置高可用集群
    1. 主备服务器实现高可用
    2. 需要使用到keepalived,判断是否正常工作 二个主备服务绑定一个虚拟IP实现keepalived.
    3. 配合高可用的准备工作
      1. 准备两台服务器 192.168.17.129    192.168.17.131
      2. 在两台服务器安装Nginx(上面方法)
      3. 在两台服务器安装keepalived
        1. 下载压缩包解压安装
        2. yum  命令进行安装  yum install keepalived -y
          1. keepalived 安装在 /etc 文件夹下
          2. 检测脚本放到 /usr/local/src
          3. 之后修改配置文件 keepalived .conf
          4. system start keepalived.service  启动两台服务器上的keepalived
    4. 启动两台服务器上的Nginx
    5. 进行访问测试          主服务器上ip a进行查看有虚拟IP绑定
    6. 停掉主服务器再进行访问      备份服务器上ip a进行查看也有虚拟IP绑定
  7. 高可用配置文件(1-4是keepalived的配置  5是服务器检测Nginx是否正常) 
  1. 修改hosts   127.0.0.1  配置名称                                                             例如下面  127.0.0.1     LVS_DEVEL设置router_id
  2. 配置全局
  3. 检测脚本
  4. 配置主备机
  5. 脚本文件检测是否服务器是否挂掉  这个放到/usr/local/src  

 8.Nginx的原理

 1.master和worker

  

2.worke如何进行工作的

先到master  然后到worker  worker找Tomcat 进行反向代理

 一个master 和多个worker有什么好处?

  • 可以使用nginx -s reload  热部署方式  不需要停掉 就让修改完的配置生效 利用Nginx进行热部署操作
  • 对于每个worker都是独立的进程不需要加锁,方便且节省资源,如果一个worker出现问题,其他worker还可以继续争抢,实现请求过程,不会造成服务的中断

   设置多少个worker

    1.  Nginx和Redis类似都采用了IO多路复用机制, (Linux中有,Windows中就没有了IO多路复用机制了)
    2. worker数和服务器的CPU数相等是最为适宜的

   连接数worker_connection

      第一个:发送请求,占用了worker的几个连接数

        要么两个 (静态资源只用Nginx) 要么四个(动态资源还要访问                                         Tomcat)  

                第二个:Nginx中有一个master 四个worker 每个worker支持最大连接数据1024

支持的最大并发数是多少?

            4 * 1024 /2   or     4 * 1024 /4

     普通的静态访问最大并发数是: worker_connection * worker_process /2,而如果                 HTTP作为反向代理来说,最大并发数量是worker_connection * worker_process /4

Nginx复习的更多相关文章

  1. 巨蟒python全栈开发linux之centos6

    1.nginx复习 .nginx是什么 nginx是支持反向代理,负载均衡,且可以实现web服务器的软件 在129服务器中查看,我们使用的是淘宝提供的tengine,也是一种nginx服务器 我们下载 ...

  2. Nginx学习笔记(二) Nginx--connection&request

    Nginx--connection&request 在Nginx中,主要包括了连接与处理两部分. connection 在src/core文件夹下包含有connection的源文件,Ngx_c ...

  3. 架构设计:负载均衡层设计方案(2)——Nginx安装

    来源:http://blog.csdn.net/yinwenjie(未经允许严禁用于商业用途!) 目录(?)[-] Nginx重要算法介绍 1一致性Hash算法 2轮询与加权轮询 Nginx的安装 1 ...

  4. 从Nginx的Web请求处理机制中剖析多进程、多线程、异步IO

    Nginx服务器web请求处理机制 从设计架构来说,Nginx服务器是与众不同的.不同之处一方面体现在它的模块化设计,另一方面,也是最重要的一方面,体现在它对客户端请求的处理机制上. Web服务器和客 ...

  5. 深入剖析Nginx一点小笔记

    前几天在图书馆看书,恰好看到这本<深入剖析nginx>,花了快一周的时间看完了这本书,写点笔记心得便于以后复习. 以前对nginx的认识就只是停留在一个反向代理服务器上.百度了一下ngin ...

  6. nginx(三)初步搭建nginx虚拟主机

    上面就是nginx基于域名.ip访问的配置,掌握住格式,就很好配置了. 一.基于域名的虚拟主机的配置:1.我们在此复习一下DNS的配置:[root@mgmserver /]# hostnamemgms ...

  7. MySQL数据库设计复习笔记及项目实战

    最近手头上有3个项目开动,其他2个都是从底层开始的,一个已经开始了一段时间的了,在小城市小团队开发的条件下,都没有专门的DBA来做数据库的设计和维护,往往都是开发人员顶上,可是看了很多的数据库的设计, ...

  8. nginx的请求接收流程(一)

    今年我们组计划写一本nginx模块开发以及原理解析方面的书,整本书是以open book的形式在网上会定时的更新,网址为http://tengine.taobao.org/book/index.htm ...

  9. Linux 复习重点目录

    Linux安全复习 一.Linux基本命令 1.文件管理命令 lvm 2.用户管理命令 3.网络管理命令 4.权限管理 普通权限和特殊权限 权限命令修改 5.服务命令 6.软件安装管理命令 yum安装 ...

随机推荐

  1. Day6 - L - Mokia HYSBZ - 1176

    维护一个W*W的矩阵,初始值均为S.每次操作可以增加某格子的权值,或询问某子矩阵的总权值.修改操作数M<=160000,询问数Q<=10000,W<=2000000. Input 第 ...

  2. java csv文件写入

    List<String> list_code = null; 方案1 控制字符集: BufferedWriter bw=new BufferedWriter(new OutputStrea ...

  3. android studio 入门坑

    安装 android studio,碰到下面这个图片,直接跳过. 安装时候,选择自定义设置,里面可以配置 sdk 的存放位置. 新建工程后,gradle sync 比较慢,可以 修改工程中的 buil ...

  4. python django Form表单

    Django 拥有自己独立的表单功能块,可以完成: 1.表单的定义 2.表单的校验 3.表单的前端样式 等功能,方便我们开发,那么接下来,我们看一下表单的定义 首先我们确定我们要编写的功能,一个提供给 ...

  5. POJ 2142:The Balance

    The Balance Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 4781   Accepted: 2092 Descr ...

  6. Live555 的一个缺陷–例子不能支持多线程(已经修改成支持多线程)

    我对Live555进行了一次封装,但是Live555 是单线程的,里面定义的全局变量太多,我封装好dll库后,在客户端调用,因为多个对话框中要使用码流,我就定义了多个对象从设备端接收码流,建立多个连接 ...

  7. centos7安装配置supervisor守护进程

    yum install Supervisor supervisord -c /etc/supervisord.conf 进入 cd /etc 目录 找到supervisord.conf 配置文件 和 ...

  8. Flink笔记(二) DataStream Operator(数据流操作)

    DataStream Source 基于文件 readTextFile(path) 读取 text 文件的数据 readFile(fileInputFormat, path) 通过自定义的读取方式, ...

  9. [题解] LuoguP3784 [SDOI2017]遗忘的集合

    要mtt的题都是...... 多补了几项就被卡了一整页......果然还是太菜了...... 不说了......来看100分的做法吧...... 如果做过付公主的背包,前面几步应该不难想,所以我们再来 ...

  10. Docker 容器(container)

    版权所有,未经许可,禁止转载 章节 Docker 介绍 Docker 和虚拟机的区别 Docker 安装 Docker Hub Docker 镜像(image) Docker 容器(container ...