Nginx的中间件架构
-
静态资源web服务
静态资源文件:
非服务器动态生成的文件(通过名称可以直接找到,不需要后台处理的文件)
-
静态资源的配置语法
将请求存起来,一次全部发送出去,提高网络包的传输效率
请求直接发送,与tcp_nopush相反,提高网络包的传输实时性
-
跨域访问
-
代理
-
代理服务
- Nginx的动静分离
通过中间件将动态请求和静态请求分离
理由:
分离资源,减少不必要的请求消耗,减少请求延时
-
正则表达式
Nginx简述
Nginx是一个开源且高性能、可靠的HTTP中间件、代理服务
常见的HTTP服务
- HTTPD-Apache基金会
- IIS-微软
- GWS(Google web server)-Google
为什么选择Nginx
- IO多路复用epoll
-
什么是IO复用
- 什么是IO多路复用
-
多个描述的I/O操作都能在一个线程内并发交替地顺序完成,这就叫I/O多路复用,这里的“复用“指的是复用同一个线程。
- 什么是epoll
IO多路复用的实现方式select、poll、epoll
-
什么是selcet
- select缺点
- 能够监视文件描述符的数量存在最大限制(1024)
- 线性扫描效率低下
- epoll模型
- 每当FD就绪,采用系统的回调函数之间将fd放入,效率更高。
- 最大连接无限制
Nginx的日志类型
error.log:记录一些运行时的日志记录/access_log:详细到每次响应的日志
Nginx的实现主要是依赖了log_format(将所有变量的信息组织在一起,记录到Syntax中)
Nginx模块
- Nginx官方模块
即Nginx.org
- 第三方模块
Nginx的访问控制
- 基于ip的访问控制
http_access_module(允许哪些ip访问不允许哪些ip访问)
配置语法:
Syntax:allow(允许) address | CIDR | unix: | all;(语法)
Default:---(默认的配置)
Context: http,server,location,limit_except;(配置的位置)
Syntax:deny(不允许) address | CIDR | unix: | all;(语法)
Default:---(默认的配置)
Context: http,server,location,limit_except;(配置的位置)
- 基于用户的信任登录
http_auth_basic_module
nginx.conf配置文件(四部分)
- main(全局配置)
main部分设置的指令将影响其他所有部分的设置
- server(主机配置)
server部分的指令主要用于指定虚拟主机域名、IP、端口
- upstream(上游服务器设置,主要为反向代理、负载均衡相关配置)
upstream的指令主要用于设置一系列的后端服务器,设置反向代理及后端服务器的负载均衡
- location(URL匹配特定位置后的设置)
location部分用于匹配网页设置(例如:根目录"/","images"、等等)
- main、server、upstream、location之间的关系
server继承main,location继承server;upstream既不继承指令也不会被继承,它有自己的特殊指令,不需要再其他地方的应用
Nginx的重要模块
- secure_link_module(安全链接)模块
- 制定并允许检查请求的链接的真实性以及保护资源免遭未经授权的访问
限制链接生效周期
-
对称加密与非堆成加密