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 指定错误状态码与对应的错误页面
相关推荐
姜鱼问生13 小时前
每次开机手动检查 6 样东西?我写了个 2 秒自检脚本
运维·网络·nginx·docker·容器
xixingzhe22 天前
Nginx 看懂请求耗时瓶颈
服务器·前端·nginx
北风toto2 天前
Windows 下用 OpenSSL 生成 SSL 密钥并配置 Nginx 教程
windows·nginx·ssl
卜锦元2 天前
Docker Compose 部署 Nginx 1.30.6 完整指南
nginx·docker·容器
小小龙学IT2 天前
Nginx 开源 Web 服务器与反向代理深度解
前端·nginx·开源
Coisinier3 天前
docker命令管理镜像及容器
linux·运维·nginx·docker·容器·操作系统
2301_32241428043 天前
基于web的校园失物招领管理系统59695-计算机毕设 原创(免费领源码+部署教程+开发环境)
mysql·nginx·php·apache·thinkphp·phpstudy·wampserver
flytalei3 天前
从YAML到Nginx服务访问:动手理解 Kubernetes Pod、Deployment 与 Service
运维·nginx·kubernetes
健康活着就好4 天前
# Nginx负载均衡四种策略,从原理到配置
nginx