第九篇:HTTP概述和Nginx部署
HTTP(超文本传输协议)⭐⭐⭐⭐⭐
- 默认端口:80
- HTTP(超文本传输协议):数据请求与响应
- 请求request:访问网站
- 响应response:显示网站,返回客户端想要的内容
- URI和URL
- URI(Uniform Resource Identifier 统一资源标识符)
- URL(Uniform Resource Locator 统一资源定位符)
- 所有的URL都是URI,URL主要强调资源的地址,URL更注重资源的标识
HTTP请求方式⭐⭐⭐
用于指定客户端如何访问服务端(上传,下载,查看服务端信息)
常见的请求方式 | 说明 |
GET | 下载(大部分请求都是GET请求) |
POST | 上传(登录,上传文件) |
HEAD |
类似于GET,仅仅输出响应的头部信息(用于查看服务信息) curl -I www.baidu.com |
浏览器调试查看
- 访问方式
- curl -v www.baidu.com
- wget --debug www.baidu.com
- 浏览器访问
- 浏览器调试功能:DevTools(开发者工具)
- F12或Fn+F12查看网络部分
HTTP协议版本⭐⭐
http1.0 | http1.1 | http2.0 | http3.0 | |
特点 |
短(无)连接:每次请求都要建立连接 队头阻塞:下一个请求必须等待前一个响应到达之前才能发送 |
长连接:keepalive功能 管道传输:单个连接可以发送多个请求 |
多路复用 多个请求可以同时通过一个连接 头部压缩 |
基于udp,应用了媒体流 |
是否加密 | 默认不加密 | 默认不加密 | 默认基于https | 默认基于https |
基于tcp/udp | tcp | tcp | tcp | udp |
HTTP协议详解⭐⭐⭐⭐⭐
HTTP请求报文⭐⭐⭐
HTTP响应报文⭐⭐⭐
http协议响应状态码⭐⭐⭐⭐⭐
状态码 | 详细状态码 | 含义 |
2xx |
200 ok | 访问正常 |
3xx |
301 Moved Permanently | 永久跳转 |
302 Found或Moved Temporarily | 临时跳转 | |
304 Not Modified | 浏览器缓存 | |
4xx |
403 Forbidden |
权限拒绝(拒绝访问) 权限问题 首页文件问题 |
404 Not Found | 文件找不到(一般通过辅助错误日志排查) | |
5xx |
500 Internal Error | 内部错误(一般是SELinux开启,其他原因通过辅助错误日志排查) |
502 Bad Gateway | 网关错误,一般发生在负载中(请求发送到后面,后面无人处理) | |
503 service temporarily unavailable | 服务临时不可用(后端负载异常或人为设置) | |
504 Gateway Time-out | 网关超时 |
响应状态码:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status
WEB集群-Nginx⭐⭐⭐⭐⭐
- WEB服务:部署并启动该服务,便可以搭建网站
- 中间件:夹在用户与数据之间的都可以称为中间件
- WEB中间件:等同于web服务
衡量系统访问量指标
指标 | 说明 |
IP | 访问网站的ip数(公网ip) |
PV | 页面访问量(Page view) |
UV | 独立访客数(Unique VIstor 特定时间段内访问网站的独立用户数量) |
DAU | 日活跃用户(Daily Active Users) |
MAU | 月活跃用户(Monthly Active Users) |
查询网站排名:https://alexa.chinaz.com
常见网站服务
网站服务 | 说明 |
Nginx | 大部分都是用nginx |
Tengine | 基于Nginx二次开发(淘宝开发) |
Openresty | 基于Nginx二次开发,加强了Lua功能与模块 |
Tomcat/Jboss/Jetty/Weblogic | 运行java环境 |
PHP | 运行php环境,需要使用nginx(LNMP) |
Nginx服务部署
配置yum源
[nginx-stable] name=nginx stable repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=1 enabled=1 gpgkey=https://nginx.org/keys/nginx_signing.key module_hotfixes=true
启动与管理
# 检查服务状态 systemctl start nginx systemctl enable nginx systemctl status nginx # 检查端口 ss -lntup |grep 80 # 检查进程 ps -ef |grep nginx
Nginx目录及其文件⭐⭐⭐⭐⭐
目录结构⭐⭐⭐⭐
目录结构 | 说明 |
/etc/nginx/ | nginx各种配置文件 |
/etc/nginx/nginx.conf | 主配置文件 |
/etc/nginx/conf.d/ | 子配置文件存放目录 |
/etc/nginx/conf.d/default.conf | 默认的子配置文件 |
/usr/sbin/nginx | nginx命令文件 |
/usr/share/nginx/html/ | nginx默认的站点目录 |
/var/log/nginx/ | nginx日志:访问日志、错误日志、跳转日志 |
/etc/logrotate.d/nginx | 日志切割(防止文件过大) |
/etc/nginx/mime.types | 媒体类型文件 |
/etc/nginx/fastcgi_params | nginx+php |
/etc/nginx/uwsgi_params | nginx+python |
/usr/lib/systemd/system/nginx.service | systemctl 配置文件 |
/var/cache/nginx/ | 缓存目录 |
主配置文件⭐⭐⭐⭐⭐
include | 文件包含或引用,引用nginx配置文件 |
user | 指定nginx用户 |
error_log | 错误日志 |
access_log | 访问日志 |
子配置文件⭐⭐⭐⭐⭐
listen | 指定监听端口 |
server_name | 指定域名,多个域名通过空格分割 |
location | 匹配请求中的uri(location / 标识匹配所有) |
root |
指定站点目录(站点目录:存放网站文件的文件系统位置) root /app/code/www www.baidu.com/yuan/xiaojiang.txt /app/code/www/yuan/xiaojiang.txt |
index | 指定站点的首页文件(只输入域名默认展示首页) |
error_log | 指定错误状态码与对应的错误页面 |
部署小鸟飞飞网站网站⭐⭐⭐⭐⭐
网站要求 | 说明 |
站点 | xiaoniao.master.cn |
站点目录 | /app/code/xiaoniao-master/ |
代码来源 | xiaoniao-master.zip |
小鸟飞飞源代码:https://gitee.com/ithos/xiaoniao
配置文件
# 子配置文件 /etc/nginx/conf.d/xiaoniao.master.cn.conf server { listen 80; server_name xiaoniao.master.cn;
root /app/code/xiaoniao-master/; location / { index index.html; } } # 检测是否有语法错误 [root@web01 /etc/nginx/conf.d]# nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful # 重启系统 [root@web01 /etc/nginx/conf.d]# systemctl reload nginx
代码部署
# 创建目录 mkdir -p /app/code/xiaoniao-master/ # 上传、解压代码 unzip xiaoniao-master.zip mv xiaoniao-master/* /app/code/xiaoniao-master/ # 配置Linux和windows的 hosts解析 #windows C:\Windows\System32\drivers\etc\hosts
windows的hosts文件需要以管理员身份进行运行 # Linux /etc/hosts 10.0.0.7 xiaoniao.master.cn
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律