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 指定错误状态码与对应的错误页面
相关推荐
会飞的鱼_1233 小时前
Nginx性能优化与防盗链实战指南
运维·nginx·性能优化
m0_4646082612 小时前
Nginx反向代理与负载均衡部署
运维·nginx·负载均衡
北城笑笑13 小时前
Server 13 ,CentOS 上使用 Nginx 部署多个前端项目完整指南( 支持多端口与脚本自动化 )
linux·服务器·前端·nginx·centos
東雪蓮☆1 天前
从零开始掌握 Web 与 Nginx:入门详解
运维·服务器·前端·nginx
✎﹏赤子·墨筱晗♪1 天前
基于Nginx实现反向代理、负载均衡与动静分离完整部署指南
运维·nginx·负载均衡
草履虫建模1 天前
在 RuoYi 中接入 3D「园区驾驶舱」:Vue2 + Three.js + Nginx
运维·开发语言·javascript·spring boot·nginx·spring cloud·微服务
游九尘2 天前
服务器都是用的iis, 前端部署后报跨域,不是用同一个服务器 是前端项目的服务器做Nginx转发,还是后端项目的服务器做Nginx转发?
服务器·前端·nginx
三坛海会大神5552 天前
nginx中配置https详解:配置SSL/TLS证书
nginx·https·ssl
✎﹏赤子·墨筱晗♪2 天前
Nginx 配置 SSL/TLS 全指南:从安装到安全强化
nginx·安全·ssl
m0_464608262 天前
Nginx SSL/TLS 配置
运维·nginx·ssl