Nginx
1. Web服务概述
客户端到数据库的数据流向:
client --> nginx(apache) --> tomcat/php/uwsgi --> dbWeb服务器分类:
- Web服务器(静态页面):nginx、apache
- Web应用服务器(动态页面):tomcat(.jsp/java)、php-fpm(.php)、uwsgi(.py/python)
URL vs URI
- URI:统一资源标识符,广义概念,包含URL和URN
- URL:统一资源定位符,URI的子集,指定访问资源的具体路径/方式
https://www.example.com:80/path/file.html?id=1#top| 组成部分 | 值 | 说明 |
|---|---|---|
| 协议 | https | 应用层协议 |
| 主机/域名 | www.example.com | 对应IP地址 |
| 端口 | 80 | 服务端口 |
/ | 网站根目录 | 发布网站的根目录 |
| path | 路径 | 子目录 |
| file.html | 访问的页面 | 真正想访问的资源 |
? | 分隔符 | 区分URL和参数 |
id=1 | 参数 | 传给页面内容的参数 |
#top | 锚点 | 页面内定位 |
2. Nginx简介
Nginx(engine x)是高性能HTTP和反向代理Web服务器,由伊戈尔·赛索耶夫开发,2004年发布第一版,后被F5公司收购。
三大功能:
| 功能 | 说明 |
|---|---|
| HTTP服务器 | 高性能静态Web服务器 |
| 反向代理 | 接收客户端请求,转发到内部服务器,返回结果给客户端 |
| 负载均衡 | 将用户请求均匀分配到多个后端服务器 |
正向代理 vs 反向代理
| 对比项 | 正向代理 | 反向代理 |
|---|---|---|
| 用户感知 | 知道自己使用了代理,需填写代理IP | 无感知,不知道使用了代理 |
| 位置 | 客户端网络 | 服务器端网络 |
| 作用 | 加速内网上网、科学上网 | 分发请求到后端服务器,隐藏真实服务器 |
Nginx基本架构
一个主进程(Master)+ 多个工作进程(Worker)
- Master:管理配置、启停Worker、重载配置
- Worker:实际处理客户端请求,相互独立,并行工作
Nginx特点
| 特点 | 说明 |
|---|---|
| 高可靠 | Master管理调度,一Master多Worker |
| 热部署 | 平滑升级、快速重载配置 |
| 高并发 | epoll事件模型,几万并发 |
| 响应快 | sendfile机制,静态文件处理快 |
| 低消耗 | 1w个请求内存仅2~3MB |
| 分布式支持 | 反向代理、七层/四层负载均衡 |
3. Nginx安装部署
3.1 yum安装(EPEL源)
# 安装EPEL源和Nginx
[root@web01 ~]# dnf install epel-release -y
[root@web01 ~]# dnf install nginx -y
# 验证版本
[root@web01 ~]# nginx -v命令作用:
- 使用
dnf包管理器执行install操作,对软件包进行安装、更新、删除或查询。
执行结果:
- 成功后软件包会按指定动作完成安装、更新、删除或查询;失败时检查仓库、网络和权限。
- 成功后会显示 Nginx 配置语法正确;失败时先修复报错,再执行 reload 或 restart。
关键参数:
注意事项:
**关键参数:**
**注意事项:**
| 命令 | 方式 | 说明 |
|---|---|---|
**RPM安装:**
**编译安装:**
| 目录 | 作用 |
|---|---|
**注意事项:**
| 匹配符 | 说明 | 示例 |
|---|---|---|
| `=` | 精确匹配 | `location = /` 只匹配首页 |
| `~` | 大小写敏感正则 | `location ~ /Example/` |
| `~*` | 大小写不敏感正则 | `location ~* /Example/` |
| `^~` | 前缀优先匹配 | `location ^~ /img/` |
注意事项:
| 标记 | 作用 | 浏览器URL |
|---|
}
**注意事项:**
}注意事项:
} }
**注意事项:**
}注意事项:
**命令拆解:**
| 命令部分 | 重要程度 | 详细解释 |
|---|---|---|
| `http://192.168.88.104` | 【普通】 | 目标 URL `http://192.168.88.104`,命令会访问这个地址或从这里下载内容。 |
**注意事项:**
**修改后执行结果:**
}注意事项:
}
**注意事项:**