nginx 的基础知识(一)
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 的基础知识(一)的更多相关文章
- Nginx——1.基础知识
Nginx——1.基础知识 作为高速.轻量.高性能等优点集于一身的服务器,Nginx在近些年迅速发展并不断扩大市场份额,甚至在最近其市场份额一举超过微软的IIS,跃身到第二位,仅次于Apache. 但 ...
- nginx 的基础知识(二)
Nginx 多进程网络模型 进程模型 nginx启动后以daemon的方式在后台运行,后台进程包括一个master进程和多个worker进程 master进程主要作用,接收来自外界的信号:向各work ...
- nginx 的基础知识(三)
Nginx命令 nginx -s reopen 重启nginx nginx -s reload 重新加载nginx文件 nginx -s stop 停止nginx服务 nginx -s quit ...
- nginx Location 语法基础知识
URL地址匹配是Nginx配置中最灵活的部分 Location 支持正则表达式匹配,也支持条件匹配,用户可以通过location指令实现Nginx对动丶静态网页的过滤处理. Nginx locatio ...
- Nginx入门篇-基础知识与linux下安装操作
我们要深刻理解学习NG的原理与安装方法,要切合实际结合业务需求,应用场景进行灵活使用. 一.Nginx知识简述Nginx是一个高性能的HTTP服务器和反向代理服务器,也是一个 IMAP/POP3/SM ...
- Nginx基础知识介绍
Nginx基础知识介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Nginx概述 Nginx是免费的.开源的.高性能的HTTP和正向/反向代理服务器.邮件代理服务器.以及T ...
- 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. ...
- nginx应用总结(1)-- 基础知识和应用配置梳理
在linux系统下使用nginx作为web应用服务,用来提升网站访问速度的经验已五年多了,今天在此对nginx的使用做一简单总结. 一.nginx服务简介Nginx是一个高性能的HTTP和反向代理服务 ...
- Linux基础知识整理
一.基础知识 1.Linux简介 Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户.多任务.支持多线程和多CPU的操作系统.它能运行主要的UNIX工具软件 ...
随机推荐
- k8s 运行单实例 mysql
配置文件mysql.yaml --- apiVersion: v1 kind: Service metadata: name: mysql-01 spec: ports: - port: 3306 s ...
- 浅谈Java的反射机制和作用
浅谈Java的反射机制和作用 作者:Java大师 欢迎转载,转载请注明出处 很多刚学Java反射的同学可能对反射技术一头雾水,为什么要学习反射,学习反射有什么作用,不用反射,通过new也能创建用户对象 ...
- 794. Valid Tic-Tac-Toe State
A Tic-Tac-Toe board is given as a string array board. Return True if and only if it is possible to r ...
- MyBatisPlus入门学习
目录 MyBatisPlus 概述 快速入门 配置日志输出 CRUD拓展 插入 主键生成策略 更新操作 自动填充 乐观锁 查询操作 分页查询 删除操作 逻辑删除 性能分析插件 条件构造器 代码自动生成 ...
- vue.js中$emit的理解
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...
- javascript取url的参数的方法
<script type="text/javascript"> function request(paras) { var url = location.href; v ...
- Dalvik模式下基于Android运行时类加载的函数dexFindClass脱壳
本文博客地址:http://blog.csdn.net/qq1084283172/article/details/78003184 前段时间在看雪论坛发现了<发现一个安卓万能脱壳方法>这篇 ...
- Linux启动流程和服务管理(init和systemd)
目录 一:Linux启动流程 init和Systemd的区别 二:Linux服务管理(service,systemctl) 一:Linux启动流程 Rhel6启动过程: Rhel7启动过程: GRUB ...
- node-Get&POST
Node.js GET/POST请求 var http = require('http'); var url = require('url'); var util = require('util'); ...
- 分布式事务与Seate框架(1)——分布式事务理论
前言 虽然在实际工作中,由于公司与项目规模限制,实际上所谓的微服务分布式事务都不会涉及,更别提单独部署构建Seata集群.但是作为需要不断向前看的我,还是有必要记录下相关的分布式事务理论与Seate框 ...