Nginx 安装 和 特性介绍

一:nginx 环境搭建

四项确认linux

  • 确认系统网络可通行
  • 确认yum可用
  • 确认关闭iptables规则
  • 确认停用selinux

查看iptables规则nginx

iptables -L

 

关闭iptables规则c++

iptables -F

 

得到当前selinux状态shell

getenforce

 

关闭selinuxvim

setenforce 0

 

两项依赖安装  centos

yum install -y gcc gcc-c++ autoconf pcre pcre-devel make automake
yum install -y wget httpd-tools vim 

 

一次初始化,初始化目录是之后咱们放对应的文件代码bash

  • app:代码目录
  • download:下载的源码包等
  • logs:自定义日志
  • work:一些shell脚本
  • backup:默认配置文件的备份
cd /opt
mkdir app download logs work backup 

  

安装过程服务器

第一步:添加Nginx到YUM源网络

添加CentOS 7 Nginx yum资源库,打开终端,使用如下命令并发

rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

 

第二步:安装
在CentOS 7 服务器中使用yum命令从Nginx源服务器中获取来安装Nginx  

yum install -y nginx

 

第三步:启动Nginx

刚安装的Nginx不会自行启动。运行Nginx

systemctl start nginx.service
# 设置开机自启
systemctl enable nginx.service

若是一切进展顺利的话,如今你能够经过你的域名或IP来访问你的Web页面来预览一下Nginx的默认页面

 

 

Nginx的特性-实现优势

 缘由一:IO多路复用epoll

 什么是IO复用?

 

多个描述符的 I/O 操做都能在一个线程内并发交替地顺序完成,这就叫I/O多路复用,这里的"复用"指的是复用同一个线程。

 缘由二:轻量级

 功能模块少:

源代码里只有核心代码,其余代码以插件形式安装

代码模块化:

适合二次改进

缘由三:CPU亲和(affinity)

 

nginx正是利用到了cpu的亲和来提升并发处理能力以及减小没必要要的cpu损耗。

1.什么是CPU亲和

是一种把CPU核心和Nginx工做进程绑定方式,把每一个worker进程固定在一个cpu上执行,减小cpu的cache miss,得到更好的性能。

2.为何须要CPU亲和

nginx做为接入层的中间件,nginx经过多个work进程进行处理。
假设咱们主机是两个CPU,每一个有四个核心,咱们把CPU的八个进程分别绑定到不一样的CPU上(也就是不一样的work分配到不一样的核心上)。若是有多个CPU利用自带的CPU切换,会形成性能损失。利用这种CPU的亲
和绑定,就能减小切换的损耗。
 
缘由四:sendfile

 ginx采用sendfile机制处理静态文件,所以效率很高。

 

上图是传统的http服务,当咱们访问一个文件时,会先通过内核空间,再通过用户空间,传给socket,最后经过response返回给用户。该过程须要屡次与用户空间进行切换,可是静态文件其实不须要与用户空间进行过多的逻辑处理。直接能够经过内核空间传输。

 

sendfile机制只经过内核空间,将文件传给socket,最终响应给用户。

所以nginx在处理CDN和动静分离服务时有很大优点。

相关文章
相关标签/搜索