一、学习环境
系统硬件:CPU>=2Core ,内存>=256M
操作系统:CentOS>=7.0,位数:64位
- 环境调试确认
- 确认系统网络
- 确认yum可用
- 确认关闭iptables规则
- 确认停用selinux
- 两项安装
yum -y install gcc gcc-c++ autoconf pcre pcre-devel make automake
yum -y install wget httpd-tool vim
- 初始化
cd /opt
mkdir app download logs work backup
二、环境调试
- 确认公网的联通性(ping www.baidu.com)
- 确认yum源的可用
- 关闭iptables规则
- 关闭selinux
三、安装基础依赖
yum -y install gcc gcc-c++ autoconf pcre pcre-devel make automake
这里提前安装了
yum -y install wget httpd-tool vim
初始化 :在opt 创建app back download work logs 等目录
四、介绍中间件
-
什么是中间件?
在网站后台往往有很多应用服务是在操作系统驱动硬件来提供对应的服务。应用与应用之间的直接调用或者应用直接操作系统的交互,会导致层次化的应用不够隔离,代码符合程度高,需要中间件来代理处理一些请求。
-
Nginx简述
Nginx是一个开源且高性能、可靠的HTTP中间件、代理服务。 -
常见的HTTP服务
- httpd - Apache基金会
- IIS - 微软
- GWS - Google
- 为什么选择nginx
- IO多路复用epoll
多个描述符的I/O操作都能在一个线程内并发交替地顺序完成,这叫I/O多路复用,这里的“复用”指的是复用同一个线程
- 什么是epoll
IO多路复用的实现方式select、poll、epoll - 什么是select
select缺点:
1)能够监视文件描述符的数量存在最大限制
2)线性扫描效率低下 - epoll模型
1)每当FD就绪,采用系统的回调函数之间将fd放入,效率更高
2)最大连接无限制
- 轻量级
- 功能模块少
- 代码模块化
- CPU亲和
- 为什么需要CPU亲和?
是一种把CPU核心和Nginx工作进程绑定方式,把每个worker进程固定在一个cpu上执行,减少切换cpu的cache miss,获得更好的性能
- sendfile
动静分离:静态文件直接通过内核空间而不需要经过用户空间,从而减少性能的消耗