web服务:
Apache
Nginx
LVS
http协议
网站运维:
web站点
游戏网站
web服务 高性能,高可用怎么构建的
DNS服务
Domain Name Server
名称解析服务
主要作用是把域名(FQDN 完全合格域名)转换成服务器对应的IP
DNS
. 13 个跟DNS服务器
顶级 com net org edu me cn us gov jp tw hk tt uk
二级域名 jd cctv magedu taobao vip
三级域名 www bbs ftp…
生产环境
主域名:vip.com taobao.com jd.com xiaomi.com
二级域名 www.vip.com bbs.vip.com edu.vip.com
三级域名 s1.qiuqiu.the9.com s2.qiuqiu.the9.com s3.qiuqiu.the9.com
DNS查询
递归查询 一级一级的找
迭代查询 一个一个的找
client——-ISP DNS1—–ISP DNS2 ——-ISP DNS3—-|—-(www.magedu.com)——-.
—– com(1.1.1.1)
—–magedu.com(2.2.2.2) —–www.magdu.com(3.3.3.3.)
向当地运营商服务器发起查询的时候 是用的递归查询
运营商的服务器向. 或者com 用的是迭代查询
DNS劫持 (运营商) (黑客)
NDS污染 (解析成错误地址,不能访问)
dnsmasq :轻量级的DNS的实现
nscd服务 :服务器本地的dns缓存服务
NDSpod :商业解决方案 dns解析服务
DDNS :动态DNS
DNS view : 视图的概念
CDN : 内容分发网络
应用程序运行模式:
C/S,B/S :客户端/服务器。 web/服务器
ARP :从IP地址到mac地址
RARP :(反向地址解析协议)从mac地址到IP地址
wireshark : 运维神器
TCP (SYN)洪水攻击
解决方案:加服务器资源 堆硬件
OSI七层网络模型: #下一层向上一层提供服务
应用层
表示层
会话层
传输层
网络层
数据链路层
物理层 #这是第一层,第一层为第二层提供服务
传输层: 实现 进程 与 进程 之间的通信。
网络层: 实现 主机 与 主机 之间的通信。
数据链路层: 实现 节点 与 节点
发送端与接收端传输数据段之
前建立TCP 三次握手连接过程:
1) 发送主机发送TCP SYN 控制数据段到接收主机;确定发送初始序号 seq=x
2) 接收主机接收到 SYN 控制数据段后返回SYN ACK 确认数据段;
确定 缓冲区大小
确定 接收初始序号
seq=y ACK=x+1
3) 发送主机接收到SYN ACK确认数据段后返回一SYN ACK确认数据段 (可能包含数据)
seq=x+1 ACK=y+1
TCP四次挥手:
步骤1: 发送主机 发送 FIN 控制数据段 到接收主机;
步骤2: 接收主机 接收FIN 控制数据段, 回应一 ACK 确认数据段
同意并准备断开连接。
步骤3: 接收主机 处理完数据后开始终止连接,同时发送FIN控制数据段
步骤4: 发送主机 接收FIN 控制数据段,回应一ACK 确认数据段;
接收主机接收到ACK确认数据段,连接终止。
cat /etc/services 查看服务及对应端口号
端口介绍:
IANA(The Internet Assigned Numbers Authority ,互联网数字分配机构)
是负责协调一些使Internet 正常运作的机构
特权端口 0——1023
众所周知的端口号,为已知服务保留
注册端口 1024——41951
分配给用户进程或者应用程序
动态端口 41952 以后
一般不固定分配某种服务,而是动态分配
http 80
https 443
sshd 22
ftp 21 20
dns 53
smtp 25
MySQL 3306
zabbix 10050 10051
redis 6379
rabbitmq 15672
rsync 873
同一台主机上不同进程之间通信(IPC)
管道 共享内存 消息 信号 套接字文件(socket)
socket套接字地址 : IP地址和端口号 标识在网络上的一个地址
web技术网站:
http://www.w3school.com.cn/example/html_examples.asp
http://www.w3school.com.cn/html5/index.asp
Method : 浏览器去访问服务端所采取的动作
GET
POST :向服务器请求提交表单数据
HEAD :再访问一个站点的时候,返回的不是网站页面,而是页面的头信息
curl -I 只返回页面的头信息
PUT :向服务器端提交上传一个文件
DELETE :向服务器端申请删除一个文件
TRACE :去追踪请求经过了哪些代理服务器或是防火墙
OPTION :协商 客户端发一个一个option的操作,服务器返回给客户端所支持的请求
常用的三种方式:
GET POST HEAD
GET 去获取一个页面
POST 获取页面的时候(访问一个内部api调用的时候),通常是需要加参数
HEAD 只获取头信息 一般用来对某个web应用进行健康检查
事务:一系列操作 要么全部完成 要么全部不完成
请求和响应称之为http事务
web资源
静态:
图片 png jpg gif
文本 txt html
css 样式表
mp3 音乐格式的
avi 视频格式
JavaScript JS
动态资源:
PHP Tomcat asp
.php
.jsp java #以这两个结尾的文件
asp aspx windows上的C#
首屏时间,首页时间:是衡量一个网站打开快慢的主要标准
前端优化的两条建议:
1 把一些小的资源合并成一个大的资源(现成的前端框架)
2 写前端页面的时候可以把JS放在最后执行
动静分离:动态资源和静态资源进行分离的
实现动静分离的目的
静态资源:把静态资源进行CDN加速(内容分发网络)
CDN加速厂商:蓝汛和网宿 帝联等
动态资源:
问题: 互联互通问题
解决方式: 使用多线机房(移动 联通 电信)
BGP机房 (边界网关协议)
URL: 统一资源定位符
协议:http https ftp jdbc
scheme://www.vip.com:80/PATH/FILE
协议 域名 端口 加资源名称
URN:统一资源名称,是URL的高级版 (理论 实验室阶段)
给网络上的每个资源都定义一个URL(名称)
URI: 统一资源标识符,标识一个资源
UTL和URN统称为URI
Web请求的模型: #七个步骤
单进程I/O模型 服务器上只启动一个进程,这一个进程用来处理所有的用户请求
多进程I/O模型 同时开启多个进程,每个进程对立响应一个请求
服务器内存只有3M,那么每个处理请求的进程需要占用1M内存,同时只能处理三个请求,
怎么办呢?
一个进程同时响应多个请求:
1 进程下面再开线程 : 比如一个进程下面开10个线程 那么我就可以同时处理10个请求
2 事件驱动机制 event-driven 模式,一个进程同时响应多个请求,
在内核中开辟一块区域,专门用来记录每个请求的具体状态:处理中?处理完等等
注意:事件驱动完全在内核底层来实现
复用的多进程I/O结构
一个进程同时响应多个请求的升级版
同时开启多个(m)进程,每个进程响应多个(n)请求,同时处理的最大请求数 mn
c10K 问题的解决方案:
单台服务器要同时支持10k 个活动连接,服务器要开启10k个进(线)程
并发访问模型
单进程I/O模型 启动一个进程处理用户请求
多进程I/O模型 并行启动多个进程,每个请求由一个独立的进程响应
复用的I/O结构 一个进程响应N个请求
多线程模式 一个进程生产N个线程,一个线程处理一个请求
事件驱动机制 一个进程直接响应N个请求
复用的多进程I/O结构,启动m个进程,每个进程生成n个线程,响应请求数量 mn
C100K就需要集群的方式来解决
HTTP协议的具体实现:
httpd(apache)
Nginx
应用程序服务器:处理静态资源和动态资源 (优势是处理动态资源)
IIS Windows之上的 IIS 6.0(2003)
IIS 7.5 (2008)
Tomcat 处理.jsp程序 JAVA应用
jetty 和resin 轻量的跑JAVA应用
weblogic jboss 等
以上统称为Web服务器
Httpd 的特性appache:
高度模块化 核心模块+ 功能模块
DSO dynamic share object 动态装卸载 #可以直接注释或者启用
多路处理模块机制MPM (Multipath processing Modules) )
Prefork 多进程模型,每个进程响应一个请求,一个主进程,多个子进程
Worker 多进程多线程模型,每个线程响应一个请求,M*N
Event 事件驱动模型,一个进程响应多个请求
虚拟主机:基于IP ,基于端口,基于FQDN
反向代理
负载均衡
路径别名
丰富的用户认证机制
支持扩展的第三方模块
一个应用的构成基本要素:
配置文件
二进制可执行命令
库文件
原创文章,作者:shewei,如若转载,请注明出处:http://www.178linux.com/73648