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 指定错误状态码与对应的错误页面
相关推荐
一张假钞5 小时前
CentOS 6.8 安装 Nginx
linux·nginx·centos
longze_717 小时前
国产信创实践(国能磐石服务器操作系统CEOS +东方通TongHttpServer)
linux·服务器·nginx·ubuntu·centos·操作系统·openeuler
gis分享者20 小时前
linux nginx 安装后,发现SSL模块未安装,如何处理?
linux·nginx·ssl
过过过呀Glik1 天前
在 Ubuntu 上对 Nginx 进行源码编译的详细指南
数据库·nginx·ubuntu
白手小弟1 天前
docker 部署Nginx UI
nginx·docker·容器
会飞的爱迪生1 天前
nginx负载均衡-基于多域名的负载均衡(二)
运维·nginx·负载均衡
花姐夫Jun1 天前
基于CentOS的Docker + Nginx + Gitee + Jenkins部署总结(进阶)-- 接入钉钉通知功能
nginx·docker·centos
喜欢悠闲独自哉1 天前
centos 搭建nginx+配置域名+windows访问
linux·nginx·centos
绝无仅有1 天前
基于资源角色的权限管理系统设计
nginx·面试·架构
訾博ZiBo2 天前
CentOS 使用 yum 方式安装 Nginx
linux·nginx·centos