Nginx 

  • HTTP 和 反向代理web服务器
  • epoll
  • 占用少的系统资源、支持更多的并发连接
  • 负载均衡
  • 安装简单、配置灵活
  • 热部署、启动快、不间断服务情况下对软件配置进行升级

反向代理

  • 反向代理 客户端-> 代理<->服务器
  • Nginx 没有自己的地址,它的地址就是服务器的地址
  • Nginx 明确知道应该要去哪个服务器获取数据
  • 正向代理 客户端 <-> 代理->服务器
  • 客户端明确访问的服务器的地址,屏蔽真实客户端信息

正反向代理使用场景

  • 正向代理 客户端明确要访问的服务器地址;服务器只清楚请求来自哪个代理服务器,而不清楚来自哪个具体客户端;屏蔽真实的客户端信息;代理的是客户端

    • 访问无法访问的资源
    • 缓存、加速访问资源
    • 对客户端授权访问、上网认证
    • 代理可以记录用户访问记录、对外隐藏用户信息
  • 反向代理 代理的是服务端;对外隐藏服务器的信息
    • 内网安全,反向代理作为公网访问地址,web服务器是内网
    • 负载均衡
  • 在实际场景中正向代理和反向代理可能在同一个应用场景中,正向代理代理客户端访问目标服务器,目标服务器是一个反向代理服务器,反向代理了多台真实的业务处理服务器

热部署

  • nginx支持热加载 热部署,在不打断用户请求的情况下更新版本
  • nginx 内部进程主要有俩类,master进程 worker进程(多个)
  • worker进程才是真正working进程,worker进程全部都是master进程的子进程,worker是以普通用户身份进行运行的,被劫持也不会有管理员权限
  • nginx 热部署与其并发模型存在密不可分的关系,因为master进程的关系,通知nginx重新读取配置文件时,master会进行语法错误的判断,如果存在语法错误的话,返回错误,不进行装载;配置文件无语法错误,则nginx也不会将新配置调整到所有worker中。而是先不改变已经建立连接的worker,等待worker将所有请求结束之后,在旧配置喜爱启动的worker kill,在使用新的配置创建新的worker
  • cp 拷贝nginx旧版本二进制文件
  • cp -f 替换二进制文件
  • ps -ef 查看进程
  • kill -usr2 旧版本主进程号 旧版本worker进程不再接受请求
  • kill -winch 旧版本主进程号 关闭旧版本worker进程
  • cp 拷贝旧进程二进制文件 覆盖 实现回退
  • kill -hup 旧版本进程号,拉起旧版进程

负载均衡

  • 硬件负载均衡(F5),软件负载均衡(消息队列分发机制)
  • weight 轮询,接收到的请求按照顺序,逐一分配到不同的后端服务器,在使用过程中,某一台服务器宕机,nginx会自动将该服务器剔除出队列,请求受理情况不会受到影响,在这种方式下,可以给不同的后端服务器设置一个权重值,用于调整不同服务器上请求的分配率,权重数据越大,被分配到请求的几率越大,主要根据机器性能进行配置的
  • ip-hash 每个请求按照发起客户端的ip hash结果进行匹配,下一个固定ip地址的客户端就会访问到同一个后端服务器,集群部署下session共享的问题
  • fair 智能调整算法,动态根据后端服务器的请求处理到响应的时间进行均衡分配,响应时间短处理效率高的服务器分配到请求的概率高,处理效率低的服务器分配到的请求少,默认不支持,需要upstream-fair模块
  • url-hash 按照访问的url hash结果分配请求,每个请求的url会指向后端固定的某个服务器,可以在nginx做为静态服务器的情况下提高缓存效率,需要安装nginx的hash包

 

nginx 的基础知识(一)的更多相关文章

  1. Nginx——1.基础知识

    Nginx——1.基础知识 作为高速.轻量.高性能等优点集于一身的服务器,Nginx在近些年迅速发展并不断扩大市场份额,甚至在最近其市场份额一举超过微软的IIS,跃身到第二位,仅次于Apache. 但 ...

  2. nginx 的基础知识(二)

    Nginx 多进程网络模型 进程模型 nginx启动后以daemon的方式在后台运行,后台进程包括一个master进程和多个worker进程 master进程主要作用,接收来自外界的信号:向各work ...

  3. nginx 的基础知识(三)

    Nginx命令 nginx -s reopen 重启nginx nginx -s reload  重新加载nginx文件 nginx -s stop  停止nginx服务 nginx -s quit ...

  4. nginx Location 语法基础知识

    URL地址匹配是Nginx配置中最灵活的部分 Location 支持正则表达式匹配,也支持条件匹配,用户可以通过location指令实现Nginx对动丶静态网页的过滤处理. Nginx locatio ...

  5. Nginx入门篇-基础知识与linux下安装操作

    我们要深刻理解学习NG的原理与安装方法,要切合实际结合业务需求,应用场景进行灵活使用. 一.Nginx知识简述Nginx是一个高性能的HTTP服务器和反向代理服务器,也是一个 IMAP/POP3/SM ...

  6. Nginx基础知识介绍

    Nginx基础知识介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Nginx概述 Nginx是免费的.开源的.高性能的HTTP和正向/反向代理服务器.邮件代理服务器.以及T ...

  7. day63:Linux:nginx基础知识&nginx基础模块

    目录 1.nginx基础知识 1.1 什么是nginx 1.2 nginx应用场景 1.3 nginx组成结构 1.4 nginx安装部署 1.5 nginx目录结构 1.6 nginx配置文件 1. ...

  8. nginx应用总结(1)-- 基础知识和应用配置梳理

    在linux系统下使用nginx作为web应用服务,用来提升网站访问速度的经验已五年多了,今天在此对nginx的使用做一简单总结. 一.nginx服务简介Nginx是一个高性能的HTTP和反向代理服务 ...

  9. Linux基础知识整理

    一.基础知识 1.Linux简介 Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户.多任务.支持多线程和多CPU的操作系统.它能运行主要的UNIX工具软件 ...

随机推荐

  1. Manjaro 蓝牙连接问题

    1 问题描述 蓝牙不能连接,或者连接上了没有声音. 2 解决方案 首先确保相应软件包存在: sudo pacman -S bluez bluez-utils pulseaudio-bluetooth ...

  2. 【SpringBoot】SpringBoot集成jasypt数据库密码加密

    一.为什么要使用jasypt库? 目前springboot单体应用项目中,甚至没有使用外部配置中心的多服务的微服务架构的项目,开发/测试/生产环境中的密码往往是明文配置在yml或properties文 ...

  3. Portswigger web security academy:Stored XSS

    Portswigger web security academy:Stored XSS 目录 Portswigger web security academy:Stored XSS Stored XS ...

  4. (Py练习)输入某年某月判断天数

    # 输入某年某月,判断这一天是这一年的第几天 year = int(input("year:\n")) month = int(input("month:\n" ...

  5. Day003 运算符

    运算符 Java语言支持如下运算符: 算术运算符:+,-,*,/,%,++,-- 赋值运算符:= 关系运算符:>,<,>=,<=,==,!=,instanceof(判断一个对象 ...

  6. transformer模型转torchscript格式

    from transformers import BertModel, BertTokenizer, BertConfig import torch enc = BertTokenizer.from_ ...

  7. DWVA--File Inclusion

    文件包含漏洞 先来了解一下什么是文件包含 因为程序开放人员通常会把可重复使用的函数写到单个文件中,在需要使用到这些函数时候,就可以 直接调用这个文件,这种对文件的调用过程就被称为文件包含. 文件包含漏 ...

  8. 一次 Go 程序 out of memory 排查及反思

    前言 最近在搞数据导出模块,在测试大文件下载的过程中,报了 Out of memory (OOM) 错误,因为之前没有遇到过这类问题,导致此次排查问题花费了大半天,也走了不少弯路,特此复盘记录. 现象 ...

  9. .NET Core 基于 Grafana Loki 日志初体验

    介绍 Loki: like Prometheus, but for logs. Loki是一个轻量级的日志系统,受到Prometheus项目的启发,由Grafana团队设计和开发,所以在Grafana ...

  10. MySQL查看及杀掉链接方法大全

    前言: 在数据库运维过程中,我们时常会关注数据库的链接情况,比如总共有多少链接.有多少活跃链接.有没有执行时间过长的链接等.数据库的各种异常也能通过链接情况间接反应出来,特别是数据库出现死锁或严重卡顿 ...