WEB集群- HTTP概述与Nginx部署

一、HTTP协议

1.1、HTTP概述

  • 默认端口是80

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

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

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

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

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

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

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

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

1.3、HTTP协议详解

1)HTTP请求

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

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

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

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

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

bash 复制代码
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响应

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

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

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

更多案例:查看文档

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

二、衡量系统访问量指标

指标 说明
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 X www.nginx.org/en/docs/
Tengine 基于Nginx二开,淘宝开源,更多内置模块
0penresty 基于Nginx二开,加强Lva功能与模块
Tomcat/Jboss/Jetty/Weblogic 运行java环境的,web服务
PHP 运行php环境,需要ngx(LNMP)

3.2、目录结构

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

3.3、配置yum源

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

ini 复制代码
[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、日常启动和管理

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

3.6、主配置文件详情

3.7、子配置文件详情

网站中常用必会指令 说明
listen 指定监听端口
server name 指定域名,多个通过空格分割
Location(区域) 匹配请求中的uri(资源地址)
root 指定站点目录(网站的根目录)
index 指定站点的首页文件。 用户访问的时候不加上任何的文件,展示首页文件
error_log 指定错误状态码与对应的错误页面
相关推荐
高木木的博客7 小时前
数字架构智能化测试平台(1)--总纲
人工智能·python·nginx·架构
徐子元竟然被占了!!8 小时前
Nginx
运维·nginx
图图玩ai9 小时前
SSH 命令管理工具怎么选?从命令收藏到批量执行一次讲清
linux·nginx·docker·ai·程序员·ssh·可视化·gmssh·批量命令执行
CXH72811 小时前
nginx——https
运维·nginx·https
Lentou12 小时前
nginx反向代理
运维·nginx
遇见火星12 小时前
linux设置开启启动服务
linux·运维·服务器·nginx
咸鱼翻身小阿橙14 小时前
QT P4
数据库·qt·nginx
o丁二黄o15 小时前
若依部署Nginx和Tomcat
运维·nginx·tomcat
一个public的class16 小时前
前后端 + Nginx + Gateway + K8s 全链路架构图解
前端·后端·nginx·kubernetes·gateway
bukeyiwanshui17 小时前
20260420 Nginx 服务器
运维·服务器·nginx