Nginx从入门到实践-基础篇
基础环境调试确保四项确认
1. 确认系统网络
ping www.baidu.com
2. 确认yum可用
yum list
3. 确认关闭iptables规则
查看规则是否存在 ipatnles -l
关闭规则 iptables -F
ipatbles -t nat -L
iptables - t nat -F
4. 确认停用selinux
查看 selinux是否关闭
getenforce
如果不是Disabled
需要敲一个 setenforce 0 去关闭一下
基本工具安装
1. yum -y install gcc gcc-c++ autoconf pcre-devel make automake
2. yum -y install wget httpd-tools vim
一次初始化
cd /opt;mkdir app download logs work backup
1. app 存放代码目录
2. download 存放网上下载的源码包等
3. logs 自定义日志
4. work 存放shell脚本
5. backup 默认的配置文件备份或者需要备份的一些文件或目录
Nginx的中间件架构
一、Nginx简述
Nginx是一个开源高性能、可靠的HTTP中间件、代理服务。
二、常见的HTTP服务
HTTPD - Apache基金会
IIS - 微软
GWS - Google
三、为什么选择Nginx?
原因一、IO多路复用epoll
一、什么是IO复用
产生多个请求,处理多个并发的请求,对于中间件就会产生多个IO流对系统的读写,那么对于IO流请求操作系统内核有并行和串行的处理的概念, 串行处理的方式一个一个处理,前边发生阻塞,后边的请求就无法完成,所以这个时候我们就要考虑并行的方式来完成整个IO流的请求,实现最大的并发和吞吐,这个时候就用到了IO复用的技术,IO复用技术就是让一个Socket来作为复用完成整个IO流的请求,当然实现这个IO流的请求,用上图的这种方式就可以实现,除了多线程的方式还有哪一些,那就是IO多路复用。
多个描述符的I/O操作都能在一个线程内并发交替地顺序完成,这就叫I/O多路复用,这里的 复用 值的是复用同一个线程。
二、什么是epoll
IO多路复用的实现方式 select、poll、epoll
select 采用的是代理线性的方式,存在一个问题会去不断的遍历队列里边的内容从而导致效率低下
select缺点:
- 能够见识文件描述符的数量存在最大限制
- 线性扫描效率低下
2.6内核以后才有了epoll模型
1. 每当FD就绪,采用系统的回调函数之间将FD放入,效率更高。
2.最大连接无限制
原因二、轻量级
- 功能模块少
- 代码模块化
原因三、CPU亲和(sffinity)
一、什么是CPU亲和
是一种把CPU核心和Nginx工作进程绑定方式,吧每个worker进程固定在一个CPU上执行,减少切换CPU的cache miss, 获得更好的性能。
原因四、sendfile
零拷贝传输模式