二阶段nginx1.0
NGINX网站服务:
介绍:
1、支持高并发,轻量级的web服务软件
2、稳定性高,系统资源消耗率低,
3、对http的高并发处理能力很高,单台物理服务器可以支持30000~50000的并发
一般来说在工作中,单台的并发会控制在20000左右
nginx的功能介绍:
1、主要功能:处理静态页面,文本、图片等等
2、动态内容处理能力较差,一般是把动态的请求转发到中间件(PHP,Python),转发到后端
3、支持正向代理和反向代理
↓
-
★★★★★正向代理:通过一个代理的地址,访问其他的web页面,客户端是知道通过代理服务器访问的目标地址
-
★★★★★ 反向代理:我们也是通过代理地址访问,但是客户端并不知道流量转发到了哪一台后端服务器 ------------------ 流量转发是根据算法把流量转发到后台服务器
反向代理====负载均衡
4、支持ssl / tls 加密支持 支持https协议
5、支持虚拟主机,在一个nginx的配置当中,可以支持多个域名
6、nginx自带缓存机制
7、自带日志记录,但是nginx没有日志分割功能,记录的是nginx自己的业务日志,如果是程序启动,停止,程序出错的日志,则不包含在内
同步 / 异步:
- 同步:在互联网中,处理请求的方式,一个服务完成需要其他服务作为依赖时,只有等待被依赖的服务完成后,才算完成
1、是一个可靠的序列,要么都成功要么都失败
2、服务器的状态需要严谨的保持一致
-
异步:一个服务的完成需要依赖其他的服务,只是通知其他依赖服务开始执行,不需要等待依赖服务的执行结果,被依赖的服务之星的结果也无法启动,是一个不可靠序列
-
nginx块的原因 -------------- 使用的是异步的处理方式
阻塞和非阻塞:
-
阻塞:在调用结果返回之前,当前的线程会被挂起,一直等到返回结果,在这个期间是不能执行其他任务的
-
非阻塞:不需要等待调用的结果,不能立刻得到结果,也不会阻塞当前的线程,而是立刻返还
nginx的工作方式:异步非阻塞
- conf:保存所有nginx配置的文件,其中nginx.conf是nginx主核心配置文件,其他的.conf文件主要是nginx的相关功能
- logs:存放nginx日志的目录,access
- sbin:nginx 的二进制启动的脚本,一般动用系统控制命令
- nginx -t:当我们配置完nginx.conf之后,可以用这个命令检测我们配置文件的语法是否正确
- html:保存到时nginx访问的web页面,这个目录可以修改,文件名一般都是index.html
nginx -t:检测配置语法
nginx -v :显示nginx的版本号
nginx -s:stop 、start 、restart 、reload
nginx的配置文件详解:
全局模块:对全局生效
- events:配置nginx服务器的并发处理数
-http模块:配置代理,缓存,日志以及第三方模块
------>
server:配置虚拟主机的参数,一个http里面可以有多个server
------->
location:用来匹配URI
nginx的运行用户,注释掉的情况默认用的是自定义程序用户
子进程的数量,一般配置成内核数量两杯,一般不超过8个,超过8个会降低处理性能,子进程的数量一般控制在2~4个
pid ------------- nginx的进程文件的位置
events模块:怎么处理nginx的并发能力?
1024 --------------- 每个子进程能够处理的并发连接数
linux打开文件数,同时处理进程是有限制的,默认就是1024
- soft nproc 65535 :表示任意程序nproc:系统处理的进程数 mofile:同属打开文件的数量,最大就是65535
- hard nproc 65535
- soft nofile 65535
- hard nofile 65535
↓
只能重启生效★★★★
ulimit -n 65535 :临时修改系统的同时打开文件数量
http ------- include:文件拓展名于文件类型的映射表
default_type application:nginx支持的默认文件类型
$remote_addr都是nginx的内置变量,主要是用来获取请求中的详细信息的
access_log logs/access.log main:日志文件的路径
sendfile on:支持文件发送(下载文件)
tcp_nopush:发送数据包前先缓存数据
keepaive_timeout 65:连接保持时间 65秒
gzip on:是否对响应的数据进行压缩
sever模块:在这个模块当中配置web信息和页面的匹配机制
listen:监听的端口号,可以改,默认是80
server_name:站点的域名
charset urf -8:指定页面解码的字符集
access_log logs/host.access.log main:站点日志文件的位置
location匹配的语法:★★★★★
- root:拼接 路径和uri合并
- alias:绝对路径:工作路径必须要包含匹配的uri
location模块:匹配uri / 匹配的规则 /通用匹配,模糊匹配
root:默认的工作目录 /usr/local/nginx/html★★★★★
index index.html index.htm:匹配的工作文件的格式,index开头, html、htm结尾都可以
nginx访问状态的统计:
location /status {
stub_status on;
access_log off;
}
Active connections: 1 # 表示当前活动的连接数
server accepts handled requests:表示已经处理的连接信息包含以下三个数字
1 1 1
已经处理的连接数 成功tcp握手的次数 已经处理的请求数
Reading: 0 Writing: 1 Waiting: 0
表示服务器正从客户端的请求中读取数据
服务器正在讲响应数据发送给客户端
表示有连接处于空闲状态,可以处理新的请求
总结:
nginx的配置文件:
全局:运行用户 和 子进程数量
event:子进程的并发数
http :server 域名 端口 location 匹配多个分网页(uri)