WEB集群- HTTP概述与Nginx部署

796 阅读5分钟

一、HTTP协议

1.1、HTTP概述

  • 默认端口是80

  • HTTP超文本传输协议: 数据请求与响应.

    • 传输:网站的数据如何传递给用户.
    • 超文本:文本,图片,视频....
    • 用户打开网站后:网站如何传递数据给用户.
    • 专业名字:数据请求与响应.

请求request:打开网站,访问网站.

响应response:网站显示出,返回给你想要的内容.

案例01: 通过curl或wget访问网站并显示详细过程,能够找出哪部分是请求和响应.

[root@nanjing ~]# curl -v www.baidu.com
[root@nanjing ~]# wget --debug www.baidu.com
---request begin---
GET / HTTP/1.1
User-Agent: Wget/1.14 (linux-gnu)
Accept: */*
Host: www.baidu.com
Connection: Keep-Alive

---request end---
已发出 HTTP 请求,正在等待回应... 
---response begin---
HTTP/1.1 200 OK
Content-Length: 2381
Content-Type: text/html
Server: bfe
Date: Sat, 02 Mar 2024 08:53:58 GMT

---response end---
200 OK
Registered socket 3 for persistent reuse.
长度:2381 (2.3K) [text/html]
正在保存至: “index.html”

1.2、HTTP协议版本

http1.0http1.1http2.0http3.0
特点短连接,每次请求都需要重复建立断开连接加入长连接功能增加并发,访问更快基于udp更快,应用于流媒体
占用服务端资源keepalive功能(网站响应后不会立刻断开,保留下这个连接)
是否加密http 不加密的https 加密的默认基于https
基于tcp/udpTcpTcpTcpUdp

目前现状: 大部分企业还在使用http1.1; 一部分使用http2.0; 目前http3.0流媒体直播在使用.

HTTP1.1 vs 2.0 速度对比: HTTP1.1 vs 2.0 速度对比

1.3、HTTP协议详解

1)HTTP请求

image-20240302174318242

请求方法:用于指定客户端如何访问服务端(下载,上传,查看服务端信息)

常见的请求方法说明
GET下载(大部分请求)
POST上传(上传文件内容,登录)
HEAD类似于GET,仅仅输出响应的头部信息,(查看服务端的信息,一般用于检查)

资源的位置(URI): 这个资源在网站站点目录的哪个地方,叫什么名字.

URI(统一资源标识符) :站点目录是用于存放网站代码的地方.未来在nginx中我们可以指定与查看.

案例02: 测试www.baidu.com是否可以通过http访问

curl -I www.baidu.com
#发出HEAD请求方法,查看服务端信息,服务端是否可以访问.

温馨提示: GET /lidaoav.mp4 HTTP/1.1 这里的/不是根,是网站站点目录,未来可以在web服务中进行配置. /app/code/www/站点目录 访问 /lidaoav.mp4=/app/code/www/lidaoav.mp4

请求头

字段(一些关键词)含义
User-Agent客户端代理(用什么工具访问网站),浏览器
Host表示访问的目标网站:域名或ip
......

2)HTTP响应

image-20240302180504109

响应头字段
Server显示服务端使用的web服务器及版本
Content-Type媒体类型(文件类型)
Content-Length大小
Location跳转之后的新的位置(未来讲解rewrite 301/302),跳转的时候才有

HTTP状态码(服务端给客户端)

状态码含义
2xx表示正常
3xx表示需要进行跳转,表示正常
4xx表示异常,客户端问题
5xx表示异常,服务端问题

image-20240302183443002

更多案例:查看文档

301案例:京东域名的永久跳转

image-20240302184036664

二、衡量系统访问量指标

指标说明
IP访问网站的独立ip数量,公网ip
PV页面访问量
UV独立访客数量,接近于用户数量 Uniqve vistor
DAU每天的活跃用户的数量:日活(日活跃用户)
MAU月活(月活跃用户)

IP,PV,UV 三剑客进行过滤,第三方统计插件(百度统计,.....网站页面加入代码),ELK

DAU,MAU 第3方工具,数据库统计用户登录情况.

网站活跃度:排名信息

三、Nginx

WEB服务:网站服务,部署并启动了这个服务,你就可以搭建一个网站.

WEB中间件: 等同于WEB服务

中间件:范围更加广泛,指的负载均衡之后的服务.

数据库中间件:数据库缓存,消息对列

3.1、常见网站服务

网站服务说明官网
Nginx人部分使用nginx,Engine Xwww.nginx.org/en/docs/
Tengine基于Nginx二开,淘宝开源,更多内置模块
0penresty基于Nginx二开,加强Lva功能与模块
Tomcat/Jboss/Jetty/Weblogic运行java环境的,web服务
PHP运行php环境,需要ngx(LNMP)

3.2、目录结构

/etc/nginxnginx各种配置目录
/etc/nginx/nginx.conf主配置文件
/etc/nginx/conf.d子配置文件(网站)
/etc/nginx/conf.d/default.conf默认的子配置文件
/usr/sbin/nginxngx命令
/usr/share/nginx/html/ngx默认的站点目录。网站的根目录
/var/log/nginx/ngx日志:访问日志,错误日志,跳转日志

3.3、配置yum源

创建 Yum 软件源文件:在 /etc/yum.repos.d/ 目录下创建一个新的 .repo 文件,以您喜欢的名称命名,比如 nginx.repo

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key

3.4、刷新缓存并安装

yum makecache
yum install nginx

3.5、日常启动和管理

systemctl enable nginx
systemctl start nginx
#检查服务状态
systemctl status nginx
#检查端口
ss -lntup | grep 80
#检查进程
ps -ef lgrep nginx

3.6、主配置文件详情

image-20240302205759691

3.7、子配置文件详情

image-20240302210110785

网站中常用必会指令说明
listen指定监听端口
server name指定域名,多个通过空格分割
Location(区域)匹配请求中的uri(资源地址)
root指定站点目录(网站的根目录)
index指定站点的首页文件。 用户访问的时候不加上任何的文件,展示首页文件
error_log指定错误状态码与对应的错误页面

3.8、Demo

1、创建配置子配置文件

[root@nanjing conf.d]# pwd
/etc/nginx/conf.d

[root@nanjing conf.d]# cat cxk.conf 
server{
  listen 80;
  server_name cxk.cn;
  root /app/code/cxk;
  location / {
  index index.html;
}
}

2、检查 nginx -t 配置文件语法格式

3、创建配置文件对应目录,并且上传代码文件

4、更改本地hosts文件

5、访问网页