Nginx初步窥探一

1.ngnix是什么?

ngnix 是 开源的 代理http请求的 中间件。

2.为什么用ngnix

2.1ngnix是采用了多路复用Io的方式。

2.1.1

首先,IO多路复用技术指的是:

在同一个线程内,同时管理多个请求,根据每个请求的反馈,来记录各个请求的状态。

 

监视着多个io流的请求,根据他们的状态,来选择去处理哪一个状态

那接下来的问题,iO多路复用,是怎么实现一个线程内处理多个io请求的呢?

io多路复用 通过一种机制。来监视多个描述符,当文件描述符的状态发生改变的时候,即状态就绪的时候,就从而去通知程序进行处理。

内核帮助应用程序进行 管理fed的状态,状态维护发生在内核中,程序只要调用系统提供的api接口就可以了

随着时间的出现,一共有三种方式的实现,select poll epoll.

select

运行机制:

fed-set,是一个数组,数组元素是文件描述符。当select()被某个进程调用的时候,内核根据IO状态去修改相应的数组元素,由此来通知执行了select函数的进程哪个状态就绪了,可以进行处理了。 。

 

 缺点: 

每次调用select的时候,内核都得从用户状态copy一份fed-set集合,开销很大。 同时会把fed-set遍历一遍 ,开销较大

fed-set是存放的数量是有限制的。

 

poll机制 :

只是改变了大小限制这一问题。链表替换数组来解决支持fd上限1024问题。

Epoll :

解决了数量限制的问题;解决了复制和遍历消耗大的问题。

每当fd的状态就绪的时候,通过 系统的回调函数 直接将就绪的fd放到双向链表里面。

也不需要多次copy了。

 

2.2 Nginx的 轻量级

功能模块少 代码模块化(易读)

2.3 cpu亲和

将cpu的每个核心和Nginx工作进程进行绑定,即是 固定每个work与cpu核心上执行,减少切换cpu的高速缓存,提高性能。

2.4sendfile

直接通过0拷贝,从 内核中进行传输静态文件,当我们请求一个文件的时候,他会经过file-内核-系统-内核-socket-到达用户,nginx直接从file-内核-内核-socket-用户。

3. nginx的安装

3.1http://nginx.org/en/download.html进入到官网,选择最下方的linux

http://nginx.org/en/linux_packages.html

本服务器系统是centos6  所以选择 yum 的安装方式;

3.2

新建目录 nginx 在该目录下,进入到该目录下

执行命令  sudo yum install yum-utils

vim /etc/yum.repos.d/nginx.repo  

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

复制进去 保存退出

3.3 安装

yum -install nginx 就可以了

 nginx -v 查看是否成功。

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值