准备
Cetntos 7
安装基本库
yum -y install gcc gcc-c++ autoconf pcre pcre-devel make automake
安装基本工具
yum -y install wget httpd-tools vim
初始化
cd /data/nginx/;mkdir app download logs work backup
- /data/nginx
- app:代码目录
- download:源码包
- logs:自定义日志
- work:shell脚本
- backup:默认配置文件
查看yum源是否可用
yum list | grep gcc
查看是否有iptables规则
iptables -L
iptables -t nat -L
关闭iptables规则
iptables -F
iptables -t nat -F
查看命令
[root@sparsematrix nginx]# getenforce
Nginx简述
Nginx是一个开源且高性能、可靠的HTTP中间件、代理服务
常见的HTTP服务
- HTTPD - Apache基金会
- IIS - 微软
- GWS - Google
为什么选择Nginx
IO多路复用epoll/并发问题
多个描述符I/O操作都能在一个线程内并发交替地顺序完成,这就叫I/O多路复用,这里的”复用”指的是复用同一个线程
什么是epoll
IO多路复用的实现方式select、poll、epoll
- select:结账的时候,服务员不告诉老板哪桌要结账,老板一个个去问才知道哪桌要结账
- epoll:结账的时候,服务员告诉老板哪桌要结账
轻量级
- 功能模块少
- 代码模块化
CPU亲和(affinity)
CPU亲和
是一种把CPU核心和Nginx工作进程绑定的方式,把每个worker进程固定在一个CPU上执行,减少切换CPU的cache miss,获得更好的性能
0拷贝
Nginx安装
- Mainline version:开发版
- Stable version:稳定版
[root@sparsematrix ~]# vim /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1