网站页面访问流程

1.客户端输入网址信息,点击回车

2.客户端完成域名解析(DNS)
本机,DNS服务器,迭代解析

3.客户端 访问相应服务器IP地址 建立TCP三次握手

4.客户度 访问Web服务器 发送HTTP请求报文 多次

5.服务器端 相应客户请求 发送HTTP相应报文 多次

6.客户端 结束访问网站过程 完成TCP四次挥手

HTTP协议请求和相应过程

HTTP请求报文

  • 请求行
    • 请求方法
      • GET - 读/看
      • POST - 写/提交
    • 请求信息
      • index.html文件
    • 请求协议
      • HTTP 1.0 TCP短连接
      • HTTP 1.1 TCP长连接
      • HTTP 2.0 TCP短连接,带有优化,统一相应提高高并发访问效率
  • 请求头
    • 请求主机信息
  • 空行
    • 隔离请求头与请求主体
  • 请求主体
    • GET方法没有请求主体
    • POST方法有请求主体

HTTP响应报文

  • 起始行
    • 状态码 访问请求是否成功
  • 响应头
  • 空行
  • 响应主体

HTTP资源信息

URL 统一资源定位符 www.baidu.com
URI 统一资源标识符 /index.heml

网站页面静态资源

html,jpg 要什么给什么
特点:

  • 内容固定不变,搜索引擎容易收录
  • 没有数据库支持,维护较为困难,交互性比较差
  • 用户访问不做解析,直接返回,比较快

网站页面动态资源

php 要的信息经过解析查询得到后再发送
特点:

  • 交互性强,支持数据库
  • 资源页面会出现”?”,”&”符号,搜索引擎不容易收录
  • 用户访问需要解析,不会直接返回,比较慢

伪静态资源

特点:

  • 便于搜索引擎收录
  • 有数据库支持,实现网页交互

常用的网站服务软件

处理静态资源的服务:

  • apache软件: http: I /apache . org/
  • nginx软件: http: I /nginx . org
    处理动态资源的服务:
  • PHP: php .net 终端浏览器进行访问
  • Tomcat (java) :利用移动端查看网页 安卓-java
  • PYTHON : 开发难度比较低

网站评测指标

IP:根据用户IP地址数量进行统计 300-400万 一个星期
PV:页面访问量,参考值 700-800万 一个星期
UV:记录独立访客数量
cookie:标识用户信息,会保存到客户端本地
session:记录用户一些会话操作,记录用户登陆信息,保存在服务器端
网站的并发:网站服务器在单位时间内能够处理的最大连接数

网站页面的访问原理:

  • 1.将域名进行解 www.yangyang.host — 47.95.5.171
  • 2.建立TCP的连接(四层协议)
    47.95.5.171 目标端口 8080
  • 3.根据应用层HTTP协议发出请求
    请求报文: hosts: bbs.yangyang.host
  • 4.没有相同域名的server主机,会找满足端口要求的第一个主机
    显示主机的网站页面,所谓的端口匹配优先

企业中网站的安全访问配置

用户验证 是使用worker进程来进行验证的,所以密码文件的属主必须是nginx系统用户

nginx服务的企业应用(nginx模块)

  • a 实现网站页面目录索引功能 (yum仓库搭建)
  • b 实现网站访问别名功能 server name
  • c 实现网站页面用户访问监控keepalived_timeout65s
    • HTTP请求报文:请求头—connection: keepalived. . . /closed短连接
    • HTTP响应报文:响应头—connection: closed 短连接
    • VPN—无法访问外网/xshe11无法远程连接
  • d 实现网站服务日志功能配置
    • 错误日志:错误日志级别
    • 访问日志:日志的格式信息自动化分析日志(ELK三个软件)
  • e 根据用户访问uri进行匹配处理
    location = xxx 精确匹配 优先级01
    location ^~ xxx 优先匹配 优先级02
    location ~ 区分大小写匹配 优先级03
    location ~* 不区分大小写 优先级03
    location uri 根据uri进行匹配 优先级03
    location / 默认匹配 优先级最低

企业应用:京东网站location应用— 11.11 12.12 6.18节日 — 页面信息和平常不一样

有两个站点目录:
平常网站的站点目录 /html /j d-normal

  • location / { root /html /jd-norma1 }
    节日网站的站点目录/htm1 /jd- teshu
  • location /特殊{ root /html /jd-teshu }

网站页面跳转功能
rewrite 匹配地址(url uri) 跳转成什么地址(urluri)
return 301 http: I /xxxx I

Apache select 和Nginx epoll 的技术对比。

指标 select epolls
性能 随着连接数的增加性能急剧下降。处理成千上万并发连接数,性能很差 随着连接数的增加,性能基本上没有下降。处理成千上万并发连接时,性能很好
连接数 连接数有限制,处理的最大连接数不超过1024,如果要处理的连接数超过1024个,则需要修改FD_ SETSIZE宏,并重新编译 连接数无限制
内在处理机制 线性轮询 回调callback
开发复杂性

http 服务

1.iptables端口转发

iptables -t nat -A PREROUTING -p tcp --dport 8080 -j REDIRECT --to-ports 80

Nginx 优化策略

1.绑定cpu与work进程
2.404跳转为302 防止流氓浏览器截获
3.缓存查找时发生错误的文件一类的信息
4.动静分离 php txt
5.压缩启用
6.代理服务器加缓存
7.keepalive 开启长连接 减小端口损耗
8.日志分离

nginx负载均衡企业应用

  • a根据用户的访问uri信息进行负载均衡(动静分离的架构)
  • b根据用户的user-agent信息进行负载均衡(手机和客户端显示不同页面)

集群灰度发布

  • LVS 顶在最前面 性能优秀面对用户。通过DNS 来分配 不同IP的访问,分发到不同的集群
  • LVS 之后是nginx调度集群 健康性检查,最大3W并发量
  • nginx调度器后面是缓存服务器 varnish 这里使用根据原地址uri的哈希值来分配服务器 固定uri 固定缓存服务器
  • 缓存服务器之后是集群Web服务器,提供服务。
  • 集群Web服务器之后是动静分离服务器,利用动静分离机制来提供服务。
  • 自定义错误404和5xx错误页,文本静态内容传输压缩
  • 实现动静分离:动态资源存储一组服务器、图片资源存在一组服 务器、静态的文本类资源存储在一组服务器