Nginx复习
- Nginx基本概念
- 是什么,做什么事情
- 高性能的HTTP和反向代理web服务器,特点占有内存小,并发能力强,
- Nginx专为性能优化而开发,最高支持50000个并发连接数
- 反向代理
- 正向代理 在客户端()浏览器)配置代理服务器,通过代理服务器进行访问
- 反向代理 客户端对代理是无感知的,客户端不需要任何配置,反向代理服务器于服务器作为一个整体.客户端认为反向代理服务器就是目标服务器.暴露的是反向代理服务器,隐藏了真实服务器.
- 负载均衡
- 单个服务器解决不了,我们 增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的情况改为将请求分发到多个服务器上,将负载分发到不同的服务器,也就是我们说的负载均衡.
- 动静分离
- 为了加快网站的解析速度,可以把动态页面和静态页面由不同的服务器来解析,加快解析速度,降低原来单个服务器的压力.
- 是什么,做什么事情
- Nginx安装,常用命令和配置文件
- 在Linux系统中安装Nginx
- 使用远程连接工具连接Linux
- 进入Nginx官网下载
- 安装编译工具及库文件 yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
- 安装PCRE 作用是让Nginx支持Rewrite功能
- 进入要安装的目录 例如 cd /usr/local/
- wget http://downloads.sourceforge.net/project/pcre/8.35/pcre-8.35.tar.gz
- tar -zxvf pcre-8.35.tar.gz
- 进入安装包目录 cd pcre-8.35
- ./configure
- make && make install
- 查看版本 pcre-config --version
- 上传Nginx 或 wget http://nginx.org/download/nginx-1.6.2.tar.gz
- tar zxvf nginx-1.6.2.tar.gz
- 进入安装包目录
- ./configure
- make && make install
- 安装成功后,在usr 多出一个文件夹local/nginx ,在Nginx下sbin启动脚本
- 进行访问 开启防火墙
- Nginx常用命令
- ./nginx -v
- ./nginx
- ./nginx -s stop
- ./nginx - s reload
- Nginx配置文件
- 第一部分 全局块
- 从配置文件开始到events块之间的内容,主要会设置一些影响Nginx服务器整体运行的配置命令,
- 比如 work processes 1 ;表示Nginx处理并发的数量,值越大,可以支持的处理并发量越多,也看硬件
- 第二部分 events块
- 影响Nginx服务器和用户网络连接
- 第三部分 HTTP全局块
- Nginx服务器中配置中最频繁的部分、代理 、缓存、日志定义绝大部分功能和第三方模块的配置都在这里
- HTTP块包含 HTTP全局块 和server块
- 在Linux系统中安装Nginx
- Nginx配置实例1-反向代理
- 实现效果
- 打开浏览器,在浏览器输入地址www.baidu.com跳转到Linux系统Tomcat主页面
- 具体实现
- 准备工作 在Linux中安装Tomcat,使用默认端口8080
- 从Windows浏览器输入网址 到Nginx 转发到Tomcat(Windows的host文件进行配置 配置域名映射的IP地址)
- 具有配置
- 在 C:\Windows\System32\drivers\etc的host文件中添加 前面IP地址 后面域名(www.baidu.com.)
- 在Nginx的配置文件中
- 在server下 默认80端口处 更改server地址为Linux的IP
- 在server下delocation 中添加 proxy_pass http://127.0.0.1:8080
- 启动Nginx 进行测试
- 实现效果
- Nginx配置实例2-负载均衡
- 实现效果
- 浏览器地址栏输入地址http://192.168.17.129/zjc/a.html,负载均衡效果,平均到8080和8081端口中,
- 准备工作
- 准备两台Tomcat服务器,一台8080,一台8081
- 在两台Tomcat里面webapps目录中,创建名称zjc文件夹,在zjc文件夹中创建页面a.html,用于测试
- 在Nginx的配置文件中进行负载均衡配置
- 在http块中加上
- 在location 进行配置servername 改为IP 然后修改 proxy_pass
- Nginx的负载均衡策略
- 轮询(默认)
- weight 权重 默认1 越大分配客户端越多
- ip_hash 每个请求按访问IP的hash结果分配,一个访客对应一个后端服务器,可以及解决session问题.
- fair(第三方) 按照后端服务器的响应时间来分配请求,响应时间短得优先分配.
- 在http块中加上
- 实现效果
- Nginx配置实例3-动静分离
- Tomcat处理动态资源, Nginx通过location处理静态资源
- 动态和静态文件混合在一起发布,通过location 指定不同后缀名进行区分
- 实例:
- 创建文件夹 data
- 在data中创建image 里面放 1.jpg
- 在data中创建wwww里面放 a.html
- 更改配置
- 在浏览器中输入地址http://192.168.17.129/image/01.jpg
- 因为配置文件中autoindex on; 点击就显示图片
- 在浏览器中输入地址http://192.168.17.129/wwww/a.html
- 创建文件夹 data
- Nginx配置高可用集群
- 主备服务器实现高可用
- 需要使用到keepalived,判断是否正常工作 二个主备服务绑定一个虚拟IP实现keepalived.
- 配合高可用的准备工作
- 准备两台服务器 192.168.17.129 192.168.17.131
- 在两台服务器安装Nginx(上面方法)
- 在两台服务器安装keepalived
- 下载压缩包解压安装
- yum 命令进行安装 yum install keepalived -y
- keepalived 安装在 /etc 文件夹下
- 检测脚本放到 /usr/local/src
- 之后修改配置文件 keepalived .conf
- system start keepalived.service 启动两台服务器上的keepalived
- 启动两台服务器上的Nginx
- 进行访问测试 主服务器上ip a进行查看有虚拟IP绑定
- 停掉主服务器再进行访问 备份服务器上ip a进行查看也有虚拟IP绑定
- 高可用配置文件(1-4是keepalived的配置 5是服务器检测Nginx是否正常)
- 修改hosts 127.0.0.1 配置名称 例如下面 127.0.0.1 LVS_DEVEL设置router_id
- 配置全局
- 检测脚本
- 配置主备机
- 脚本文件检测是否服务器是否挂掉 这个放到/usr/local/src
8.Nginx的原理
1.master和worker
2.worke如何进行工作的
先到master 然后到worker worker找Tomcat 进行反向代理
一个master 和多个worker有什么好处?
- 可以使用nginx -s reload 热部署方式 不需要停掉 就让修改完的配置生效 利用Nginx进行热部署操作
- 对于每个worker都是独立的进程不需要加锁,方便且节省资源,如果一个worker出现问题,其他worker还可以继续争抢,实现请求过程,不会造成服务的中断
设置多少个worker
- Nginx和Redis类似都采用了IO多路复用机制, (Linux中有,Windows中就没有了IO多路复用机制了)
- 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复习的更多相关文章
- 巨蟒python全栈开发linux之centos6
1.nginx复习 .nginx是什么 nginx是支持反向代理,负载均衡,且可以实现web服务器的软件 在129服务器中查看,我们使用的是淘宝提供的tengine,也是一种nginx服务器 我们下载 ...
- Nginx学习笔记(二) Nginx--connection&request
Nginx--connection&request 在Nginx中,主要包括了连接与处理两部分. connection 在src/core文件夹下包含有connection的源文件,Ngx_c ...
- 架构设计:负载均衡层设计方案(2)——Nginx安装
来源:http://blog.csdn.net/yinwenjie(未经允许严禁用于商业用途!) 目录(?)[-] Nginx重要算法介绍 1一致性Hash算法 2轮询与加权轮询 Nginx的安装 1 ...
- 从Nginx的Web请求处理机制中剖析多进程、多线程、异步IO
Nginx服务器web请求处理机制 从设计架构来说,Nginx服务器是与众不同的.不同之处一方面体现在它的模块化设计,另一方面,也是最重要的一方面,体现在它对客户端请求的处理机制上. Web服务器和客 ...
- 深入剖析Nginx一点小笔记
前几天在图书馆看书,恰好看到这本<深入剖析nginx>,花了快一周的时间看完了这本书,写点笔记心得便于以后复习. 以前对nginx的认识就只是停留在一个反向代理服务器上.百度了一下ngin ...
- nginx(三)初步搭建nginx虚拟主机
上面就是nginx基于域名.ip访问的配置,掌握住格式,就很好配置了. 一.基于域名的虚拟主机的配置:1.我们在此复习一下DNS的配置:[root@mgmserver /]# hostnamemgms ...
- MySQL数据库设计复习笔记及项目实战
最近手头上有3个项目开动,其他2个都是从底层开始的,一个已经开始了一段时间的了,在小城市小团队开发的条件下,都没有专门的DBA来做数据库的设计和维护,往往都是开发人员顶上,可是看了很多的数据库的设计, ...
- nginx的请求接收流程(一)
今年我们组计划写一本nginx模块开发以及原理解析方面的书,整本书是以open book的形式在网上会定时的更新,网址为http://tengine.taobao.org/book/index.htm ...
- Linux 复习重点目录
Linux安全复习 一.Linux基本命令 1.文件管理命令 lvm 2.用户管理命令 3.网络管理命令 4.权限管理 普通权限和特殊权限 权限命令修改 5.服务命令 6.软件安装管理命令 yum安装 ...
随机推荐
- C语言中指针和取地址符&的关系
一 概念定义: 严格说起来,应该这么讲:指针存的是地址,而&运算符是取变量的地址. 指针原理: 其实计算机中的内存就像一个个抽屉(一兆内存就相当于1百万个抽屉),每个抽屉都有一个编号,用于存放 ...
- [前端] Vue封装播放器、打包、上传NPM
一.使用icomoon 1.生成和下载图标相关文件 先使用icomoon获取我们要使用的图标,例如播放.暂停.停止.全屏等图标. icomoon网站:https://icomoon.io/app/#/ ...
- SpringMVC 文件的上传、下载
文件上传 (1)下载添加2个jar包 commons-fileupload.jar commons-io.jar SpringMVC的文件上传依赖于Apache的FileUpload组件,需要下载添加 ...
- matlab练习程序(快速搜索随机树RRT)
RRT快速搜索随机树英文全称Rapid-exploration Random Tree,和PRM类似,也是一种路径规划算法. 和PRM类似,算法也需要随机撒点,不过不同的是,该算法不是全局随机撒点,而 ...
- imagenet下载及训练
imagenet 种子 迅雷打开验证集http://academictorrents.com/download/5d6d0df7ed81efd49ca99ea4737e0ae5e3a5f2e5.tor ...
- 偶然在博客中见对百度一个面试题的探讨,写些自己的看法以及指出探讨中不对的观点:百度面试题:求绝对值最小的数 有一个已经排序的数组(升序),数组中可能有正数、负数或0,求数组中元素的绝对值最小的数,要求,不能用顺序比较的方法(复杂度需要小于O(n)),可以使用任何语言实现 例如,数组{-20,-13,-4, 6, 77,200} ,绝对值最小的是-4。
今天申请了博客园账号,在下班后阅览博客时发现了一个关于百度面试题探讨的博客(其实是个很基础的问题),此博客url为:http://www.blogjava.net/nokiaguy/archive/2 ...
- 吴裕雄--天生自然java开发常用类库学习笔记:Math与Random类
public class MathDemo01{ public static void main(String args[]){ // Math类中的方法都是静态方法,直接使用“类.方法名称()”的形 ...
- Adapter之ArrayAdapter以及监听器设置
前言: ArrayAdapter:支持泛型操作,最简单的一个Adapter,只能展现一行文字~,我的学习就是通过这个最简单的适配器开始 正文: 完成这个ArrayAdapter需要三步:1.初始化数据 ...
- 用 Python监控了另一半的每天都在看的网站,我发现了一个秘密
阅读文本大概需要 5 分钟. ! 需求: (1) 获取你对象chrome前一天的浏览记录中的所有网址(url)和访问时间,并存在一个txt文件中 (2)将这个txt文件发送给指定的邮箱地址(你的邮 ...
- 前端第二篇---前端基础之CSS
前端第二篇---前端基础之CSS 目录 一.css介绍 二.css语法 三.css的几种引入方式 四.css选择器 五.css属性相关 六.盒子模型 拓展 一.css介绍 CSS(Cascading ...