昨天内容: HTTP协议;(OSI七层模型略过;) 1.URL(URI)资源地址; 2.HTML --》URL资源地址,构建成一个网页Web Page; 3.HTTP协议来传输HTML资源;(与web服务器交换数据的基础;) 4.HTTP协议工作原理: 4.1)分析URL地址; 4.2)App Cache; 4.2)DNS域名解析; 4.3)TCP三次握手; 4.4)HTTP请求报文; 请求方法: GET 请求版本: HTTP/1.1 请求类型: text/html 请求Host: www.example.com 请求路径: / 请求Headers: 缓存: 语言: 压缩: 设备类型: 4.5)HTTP响应报文; 响应的Headers: 文件的最后修改时间; 文件的etag; 文件的缓存周期; 文件的长度; 响应状态码: 200;304;404;405 响应的数据: 4.6)TCP四次挥手; 触发机制: 1.客户端主动断开; 2.服务端等待超时然后强制断开; 5.pv、uv、ip、并发、 6.如何收集和统计; 7.公司一般每天的pv、uv、ip
今天内容: 1.IO网络模型; 2.同步、异步、阻塞、非阻塞; 3.同步阻塞、同步非阻塞、异步阻塞、异步非阻塞; 4.IO实现的网络模型 select、poll、epoll; 5.Nginx; 6.Nginx应用场景、特性; 7.nginx部署、目标结构、配置文件; 8.nginx定义网站,通过域名访问; 9.Nginx虚拟主机;
http://10.0.0.7 http://10.0.0.7/ uri=/
[root@web01 ~]# rpm -ql nginx /etc/logrotate.d/nginx /etc/nginx nbginx安装位置 /etc/nginx/nginx.conf nginx主配置文件 /etc/nginx/conf.d /etc/nginx/conf.d/default.conf nginx提供的默认站点 /etc/nginx/fastcgi_params nginx在通过模块链接php程序时需要传递的一些变量 /etc/nginx/mime.types nginx支持的类型; /etc/nginx/modules nginx的模块;
/etc/nginx/scgi_params /etc/nginx/uwsgi_params nginx在通过模块链接python程序时需要传递的一些变量
/usr/lib/systemd/system/nginx.service nginx服务的启动与停止文件
/usr/lib64/nginx /usr/lib64/nginx/modules
/usr/sbin/nginx nginx二进制文件
/usr/sbin/nginx-debug
/var/cache/nginx nginx缓存目录
/var/log/nginx nginx日志目录
1.必须通过域名访问,不可以使用IP地址访问:
1.编写Nginx配置文件: [root@web01 ~]# cat /etc/nginx/conf.d/game.oldxu.net.conf server { listen 80; server_name game.oldxu.net;
location / {
root /code;
index index.html;
}
}
2.准备对应的网站代码: [root@web01 ~]# wget http://cdn.xuliangwei.com/xiaoniaofeifei.zip [root@web01 ~]# unzip xiaoniaofeifei.zip -d /code/
3.检查nginx配置语法: [root@web01 ~]# nginx -t [root@web01 ~]# systemctl reload nginx
4.通过浏览器输入域名方式实现访问:
game.oldxu.net --->10.0.0.7 关联起来; 需要修改hosts文件即可;
Nginx虚拟主机: 在一台服务器上运行多个网站:
虚拟主机的实现方式:
1.基于多IP实现:
eth0: Old Page
eth1 New Page
2.基于多端口实现(不需要域名):
a: 8080:
b: 8081:
3.基于多域名实现(相同的端口,但使用不同的Server_name来区分,已实现一台服务器运行多个站点;):
/code/xnff
/code/wx
/code/web
1.网络IO模型:
关注消息通知机制:
同步: 需要主动轮训;
异步:会主动上报;
调用者调用被调用者,处于的状态:
阻塞: 等待任务的执行,什么也操作不了;
非阻塞:可以继续处理其他任务;
同步阻塞IO: 第一阶段阻塞,第二阶段阻塞;
同步非阻塞IO: 第一阶段不阻塞,不断轮询获取数据是否准备就绪; 第二阶段,处于阻塞状态;
IO多路复用: nginx --非阻塞--> select代理--阻塞--》kernel--》第二阶段处于阻塞状态;
事件驱动IO: 第一阶段不阻塞,通知,然后进入第二阶段阻塞;
边缘触发:
水平触发:
异步阻塞:
异步非阻塞IO: 全程都处于非阻塞状态,切属于异步,通知是主动的,不需要用户进程取轮询获取状态;
select:IO多路复用; 两个阶段都会被阻塞 (阻塞的是select代理程序,而nginx任然可以继续对外提供用户的请求);
poll:IO多路复用; 两个阶段都会被阻塞;
epoll:IO多路复用;事件驱动IO特性; 第一个阶段不阻塞(异步非阻塞);第二阶段才阻塞(异步阻塞);
时间:O(n) 、 O(1)
2.nginx 1.nginx应用场景: 2.nginx组成结构: 3.nginx安装、目录结构、配置文件解读、 4.使用nginx定义一个基本的网站 5.nginx是如何找到对应的站点的; 6.nginx是如何定义到站点的目录位置; 7.如果通过IP地址访问,会出现什么问题,有哪些解决办法; 8.用户访问nginx整体的过程;Host --》 server_name 9.nginx虚拟主机的概念; 1.基于多IP的方式; 2.基于多端口的方式; 3.基于多域名的方式;
nginx常用的模块; lnmp架构;