一、nginx的程序的目录结构
01、基础了解
1) 用户访问网站的原理
2) HTTPd协议报文
3)HTTP协议的重点概念
请求:请求方法 请求的协议
响应:状态码
4) 网站资源
静态资源
动态资源
5) 网站的度量方式
IP PV UV (cookie session)并发
6) 网站的常见的服务的软件
7) nginx程序的利用方源方式进行部署
………………………………………………………………………………………………………………………………
02、 nginx的软件概念说明
1) 可以实现网站服务功能
2) 可以实现负载均衡功能
3) 可以实现前端缓存功能
4) 可以实现安全访问功能
作用特点:
1)支持高并发:能支持几万并发连接(特别是静态小文件业务环境)
2) 资源消耗少:在3万并发的连接下,开启10个线程的时候它消耗的内存不到200MB
3) 支持异步网络I/O事件模型epoll
……………………………………………………………………………………………………………………………………………………
03、nginx的软件和Apache软件进行对比
nginx的使用的网络模型epoll
处理效率:(回调)
就相当于有一个名单,它对按照名单去找你想要的东西然后在告诉你它在哪。
Apache的使用的模型select
处理效率:(线性轮回)
它就是会一个一个的查找这样很费时间
……………………………………………………………………………………………………………………………………………………………………
04、用户访问网站的原理
00. 用户输入域名点击回车
01. 完成域名DNS解析过程 DNS原理
02. 完成TCP三次握手建立
03. 向网站服务器访问请求信息(HTTP请求)
03.5. 网站架构接收用户请求 (负载均衡 web集群 存储 数据库 缓存...)
04. 向客户端响应数据信息 (HTTP响应)
05. 用户利用浏览器解析响应信息,显示最终页面
06. 完成TCP四次挥手过程
………………………………………………………………………………………………………………………………
05、用户访问网站的HTTP协议原理
什么是HTTP:超文本传输协议
HTTP协议请求:报文结构 4个部分
1)请求行: 标题 1行
请求方法:get(获取) post(提交)
请求内容:默认index.html(首页文件)
协议版本:HTTP1.0 HTTP1.1 HTTP2.0(高并发访问效率更高)
TCP协议长连接和短连接概念:
短连接:一次连接 一次请求
长连接:一次连接 多次请求
2)请求头: 中心思想 多行
请求主机信息: 根据请求主机信息显示不同页面 www bbs blog
请求user-agent信息:打开手机---腾讯浏览器APP---设置---浏览器UA:iphone
3)空行
4)请求主体: 详细说明内容 多行
使用get方法:没有请求主体
使用post方法:产生请求主体(提交的信息 用户注册信息 用户登录信息) ???
HTTP协议响应:报文结构 4个部分
1)响应行:
响应状态码:响应结果 面试题
200 OK --- 正常结果信息
301 --- 跳转 永久跳转
302 --- 跳转 临时跳转
401 --- 认证失败了
403 --- 用户禁止访问 爬虫 iptables
--- 网站首页文件不存在
404 --- 你访问的页面不存在
网站服务端会进行优雅显示
5xx --- 网站架构服务有关
2)响应头部:
响应的服务程序:web服务程序名称 nginx/tenginx/bfe/apache
3)空行
4)响应主体:
请求响应过来的代码信息:html代码信息
…………………………………………………………………………………………………………………………………………………………………………
06、HTTP协议资源
媒体资源类型:mime.types 媒体资源类型文件
媒体资源类型文件中有的信息:会直接解析,显示页面
媒体资源类型文件没有的信息:会进行下载,不会解析
访问网站地址类型:
www.oldboy.com /oldboy.jj
url uri
url: 全称为Uniform Resource Location,中文翻译为统一资源定位符,也被称为网页地址
uri: 全称为Uniform Resource Identifier,中文翻译为统一资源标识符,是一个用于标识某一互联网资源名称的字符串
访问资源分类:
静态资源: 所见即所得 见到的代码是什么样,浏览器解析就会解析成什么页面
1) 访问资源uri扩展名信息
每个页面都有一个固定的URL地址,且URI一般以.html、.htm、.shtml等常见形式为后缀,而且地址中不含有问号“?”或“&”等特殊符号。
2) 网页内容一经发布到网站服务器上,无论是否有用户访问,每个网页的内容都是保存在网站服务器文件系统上的,也就是说,静态网页是实实在在保存在服务器上的文件实体,每个网页都是一个独立的文件。
*3) 网页内容是固定不变的,因此,容易被搜索引擎收录(容易被用户找到)(优点)。
4) 因为网页没有数据库的支持,所以在网站制作和维护方面的工作量较大,当网站信息量很大时,完全依靠静态网页比较困难(缺点)。
5) 网页的交互性较差,在程序的功能实现方面有较大的限制(缺点)。
*6) 网页程序在用户浏览器端解析,如IE浏览器,程序解析效率很高,由于服务器端不进行解析,并且不需要读取数据库,因此服务器端可以接受更多的并发访问。当客户端向服务器请求数据时,服务器会直接从磁盘文件系统上返回数据(不做任何解析)。待客户端拿到数据后,在浏览器端解析并展现出来(优点)。
用户请求 --- web服务器 -- index.html oldboy.html oldboy.jpg --- 用户
动态资源: 会调取数据库资源,显示页面信息
1) 网页扩展名后缀常见为:.asp、.aspx、.php、.js、.do、.cgi等。 ※
*2) 网页一般以数据库技术为基础,大大降低了网站维护的工作量。
*3) 采用动态网页技术的网站可以实现更多的功能,如用户注册、用户登录、在线调查、投票、用户管理、订单处理、发博文等。
*4) 动态网页并不是独立存在于服务器上的网页文件,当用户请求服务器上的动态程序时,服务器解析这些程序并可能通过读取数据库来返回一个完整的网页内容。
5) 动态网页中的“?”在搜索引擎的收录方面存在一定的问题,搜索引擎一般不会从一个网站的数据库中访问全部网页,或者出于技术等方面的考虑,搜索蜘蛛一般不会去抓取网址中“?”后面的内容,因此在企业通过搜索引擎进行推广时,需要针对采用动态网页的网站做一定的技术处理(伪静态技术),以便适应搜索引擎的抓取要求。
6) 动态资源需要和数据进行交互,网页面显示效率较低
用户请求 --- web服务器 --- oldboy.php ---> php服务处理 --> 数据库 --- php --- web --- 用户
用户请求 --- web服务器 --- oldboy.js ---> tomcat服务处理 --> 数据库
伪静态资源:
1)有数据库支持,可以进行交互
2)便于被搜索引擎收录
………………………………………………………………………………………………………………………………………………………………………………………………
07、网站的度量方式
IP:根据用户访问的源IP地址 awk数组 ELK---access.log(记录用户源IP地址(公网IP地址))
参考数据值:192.168(南方 10万) 10.0.0(北方 1万) 彩票
PV: 页面访问量
参考数据值:用户点击网站页面的数量
UV:记录独立用户访客数量
cookie: 钥匙 会员卡 网站给用户分配身份标识信息,保存在主机本地
session:锁头 会员登记表 网站产生的用户访问记录信息,保存在网站服务器中
程序代码进行统计
度量数值参考:http://alexa.chinaz.com/alexa_more.aspx
…………………………………………………………………………………………………………………………………………………………
08、企业常用的web服务
官方参考:https://w3techs.com/technologies/overview/web_server/all
处理静态资源网站:
nginx web服务软件:
apache web服务软件:zabbix
Tengine
处理动态资源网站
php web服务软件:
tomcat
……………………………………………………………………………………………………………………………………………………………………………………………………………………
二、nginx的程序配置文件信息
nginx主配置文件信息
1)结构
events {
worker_connections 1024; --事件区块
}
http { --HTTP区块
server { -- server 主机区块
location / { --location 区块
}
}
}
三、完成一个网站的页面的部署HTML
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /usr/share/nginx/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
四、nginx在企业的实际应用
1)作为web服务
nginx是一个支持高性能,高并发的web服务软件,它具有很多的优点,做为web服务器与Apache想比,
nginx能够支持更多的并发连接访问,但占用的资源却很少,效率高,在功能上也强大了很多,几乎不亚于Apache。
2)反向代理和负载均衡服务
在反向代理和负载均衡服务方面,nginx可以做为web服务,PHP等动态服务及memcahed缓存的代理服务器,他具有类似专业反向代理软件的功能,
同时也是一个很优秀的邮件代理服务软件,但是nginx的代理功能相对来说还是简单了些,特别是不支持TCP的代理(从nginx1.9.0版就已经支持了)
3)前端的业务数据缓存服务
在web服务方面,nginx可以通过自身的模块就可以实现squid等专业的缓存软件
nginx的这三大功能(前端的负载均衡和反向代理,业务缓存)是国内使用nginx的主要场景。
####nginx的主要重要特征及应用场合
1)nginx可以针对静态资源的高速并发访问及缓存
2)可使用反向代理加速,并且可进行健康检查
3)具有简单的负载均衡,节点健康检查和容错功能。
4)支持远程的FastCGI服务的缓存加速。
5)具有模块化的架构:过滤器包括gzip压缩,ranges支持,chunked响应,XSLT图像缩放等功能。
6)支持基于名字。端口及ip地址的多虚拟机主机站点
7)支持keepalive和pipelined连接
8)可自定义日志的格式,临时缓存写日志操作,快数日志轮询及通过rsylog处理日志
五、nginx的特殊模块
image.png
image.png
image.png
image.png