Nginx从入门到实践:基础知识篇
一. 调试环境确认
四项确认
1. 确认系统网络
ping www.baidu.com
2.确认yum可用
列出gcc源却yum是否可用
yum list|grep gcc
3.确认关闭iptables规则
iptables L //查看是否有iptabls规则
iptables F //如果有这个规则,则关闭
iptables -t nat -F //这个规则也关闭掉
4.确认停用selinux
getenforce //查看selinux关闭状态
setenforce //如果未关闭,则需要先关闭
两项安装
一次初始化需要在服务器上新建如下目录
二 .认识nginx中间件
中间件可以使网站的服务更具有层次,而Nginx是一个开源高性能,可靠的HTTP中间件,并提供代理服务。
三.为什么选择Nginx
1)IO多路复用 epoll
IO多路复用其实就是要完成操作系统IO的请求,对于IO的请求,当一个IO流要进行对应文件处理的时候,先获取这组文件的描述符,当描述符
没有就绪的时候,它就一直等待,直到描述符就绪,就马上上报系统通知的请求,告诉应用程序,IO已经准备就绪,可以来操作了。这样多个描述符的I/O操作都能在一个线程内并发交替地顺序完成,这里的”复用“指的是复用同一个线程
IO多路复用的实现方式 select ,poll,epoll
select模型采用线性遍历的方式,不断遍历文件描述符应用队列的内容,效率低下,且能够监视文件描述符的数量存在最大限制 1024个。而epoll模型是每当FD就绪,就采用系统的回调函数将FD放入,效率更高,且没有最大连接限制。
Nginx就是采用epoll模型来实现其最高处理文件的效率
2)Nginx功能模块少,代码模块化
3)Nginx和CPU亲和,把CPU的核心和Nginx的工作进程进行绑定,把每个worker进程固定在
一个CPU上执行,减少切换CPU 的 cache miss,获得更好的性能。
4)采用sendfile机制
把所有文件的传输只通过内核空间传递给socket,而不需要再走一遍用户空间
四. Nginx快速搭建与基本参数使用
1)通过yum源安装
把官网的yum源复制到服务器nginx 的yum源配置文件中
yum list |grep nginx //列出nginx
yum install nginx
nginx -v //查看nginx编译版本
nginx -V //查看ngixn编译参数
2)nginx 安装目录
rpm -ql nginx //查看nginx安装目录
nginx.conf 是nginx的主要配置文件 default.conf 是默认会进行server加载的配置文件
3)安装编译参数
五, Nginx相关配置
1.HTTP请求
测试
curl -v http://www.imooc.com > /dev/null
或者通过浏览器查看
2.Nginx日志类型
3.Nginx变量
4.sub_status
5.默认模块讲解
6.sub_module 模块 指定字符串的请求替换
7.sub_module 模块演示
8.Nginx请求限制
9.Nginx的访问控制
这里include 表示 /etc/nginx/conf.d/下的所有 .conf 文件都会被 nginx主文件读到
nginx检测配置语法是否成功
nginx -t -c /etc/nginx/nginx.conf
nginx 重新加载主配置文件
nginx -s reload -c /etc/nginx/nginx.conf
访问控制可以在 http下面做,也可以在server里做,也可以在location里做 所影响的范围也不同,我们以location 为例子 做讲解 ,只会对一个location里的访问做限制
~ 符号是在访问路径里面做模式匹配,^/admin.html 意思是访问根目录下以admin开头的ht.ml,就让它加到目录里,allow 222.128.189.0/24 限制该ip的 0-24ip网段能访问, deny all 其它ip不能访问
IP1通过IP2 去访问IP3 的时候,我们实际上想限制IP1,但是限制的却是中间的代理IP2,所以他的准确性是不高的
解决方法:
记录整个ip通过代理访问的过程和地址,方式
身份认证