云计算Linux——Nginx源码编译安装(十一)
前言
补充
Crontab命令语法与重定向机制
# 编辑定时任务 crontab -e # 查看已有定时任务 crontab -l # 清空所有定时任务 crontab -r 分 时 日 月 周 要执行的命令 # 分钟 0-59 # 小时 0-23 # 日期 1-31 # 月份 1-12 # 星期 0-7 0和7都是周日 * :每单位(每时 / 每天 / 每月) */n :每隔 n 分钟 / 小时 a-b :从 a 到 b 范围 a,b,c :指定多个时间点 # 每1分钟执行一次 * * * * * 命令 # 每天凌晨2点30分执行 30 2 * * * 命令 # 每周日凌晨3点 0 3 * * 0 命令 # 每隔5分钟执行 */5 * * * * 命令 0,30 8-18 * * * 命令重定向
1 | # 只把正常日志写入文件,报错不存 命令 >> /var/log/test.log 2 | # 正常日志+错误日志 都写入同一个文件 命令 &>> /var/log/test.log 3 | # 丢弃所有输出(不打印、不存日志) 命令 > /dev/null 2>&1解释> /dev/null 2>&1
/dev/null黑洞,扔进去就消失2>&1把错误输出交给标准输出一起扔掉标准流与重定向符号
三种标准流
名称 描述 编号 stdout 正常打印信息 1 stderr 报错信息 2 stdin 键盘输入 0 重定向符号
符号 作用 >覆盖输出到文件 >>追加输出到文件 2>错误信息重定向 2>>错误信息追加到文件 标准流与重定向符号
三种标准流
名称 描述 编号 stdout 正常打印信息 1 stderr 报错信息 2 stdin 键盘输入 0 重定向符号
符号 作用 >覆盖输出到文件 >>追加输出到文件 2>错误信息重定向 2>>错误信息追加到文件
一、Nginx 是干嘛的?
1.1 Nginx
web服务器,为企业提供一个访问入口(www.cnki.net)、可以做反向代理
Nginx:一款用来搭网站、转发请求的软件。
别人访问你,它来扛压力、做中转。
能干三件大事:
直接打开网页
反向代理(帮你转发请求给别的服务器)
分担流量压力
1.2 Nginx 优势:
① 轻量级(C语言开发、系统集成比较流畅、支持正则表达式,可以快速定位到用户访问的网页)
② 静态任务处理能力比较强,支持 50000个/s 并发压力
③ Nginx 的其他功能也比较丰富
1.3 Nginx 安装:
1.3.1 在线安装
yum install -y nginx (略)
1.3.2 源码编译安装(一般来说,在内网环境下会使用)
1)安装依赖环境(比如Nginx 是C开发的--》安装C语言的运行环境包括一些安装工具比如:
make )
./configure --参数 make && make installyum install -y gcc gcc-c++ pcre pcre-devel zlib zlib-devel make
2)上传源码包,解压缩(nginx 目录)
3)安装软件(使用自带的安装工具: ./configure )
./configure --prefix=/usr/local/nginx \ #指定安装后的工作目录(安装的位置)
--user=nginx \ #指定管理nginx服务的用户身份是nginx
--group=nginx #指定管理nginx服务的用户组是nginx
4) make && make install
make是一个编译工具:主要负责把我们指定的安装方式翻译给系统理解,并且使用make install
让系统执行安装操作
5)把nginx 服务添加给系统进行管理(也就是可以使用systemctl 工具管理nginx 服务)
6)创建nginx 的用户 useradd -M -s /sbin/nologin nginx
7) 优化管理: ln -s /usr/local/nginx/sbin/nginx /usr/sbin/
8) systemctl start nginx 启动测试
systemctl stop firewalld
浏览器访问192.168.110.129
二、Nginx的管理
补充:
静态任务:图片、html、css、js → Nginx 直接返回(图片、网络首页等Nginx 直接响应)
动态任务:php、接口、后台业务 → Nginx 抛给 Tomcat/PHP/ 后端(nginx给后端)
├─ 静态资源 → Nginx 直接响应
─ 动态请求 → 反向代理 → Tomcat/PHP/ 微服务后端
2.1 Nginx 服务功能的组成 (配置文件)
配置文件:记录着程序/服务启动时的运行标准
用户访问服务端一般都是使用http协议
3种情况:
正常访问 2xx 3xx
访问错误(服务端错误5xx、客户端错误4xx)
2.2 nginx.conf主要管理的哪些内容
首先,在配置文件中有以下几个区域(配置文件中参数的框架)
2.2.1.全局配置![]()
内置变量书写的后的log日志记录的样子
全局作用域(Global Context):配置参数生效于整个 Nginx 服务,包括 Worker 进程管理、日志路径及 PID 文件位置。
2.2.2 http {} 区域
HTTP 作用域(HTTP Context):仅当用户使用 HTTP 协议访问时生效,负责定义日志格式、文件传输及压缩等标准处理逻辑。(指的是 用户使用http访问时,Nginx遵守的处理标准)
2.2.3.server {} 区域
Server 作用域(Server Context):匹配用户具体的访问入口(域名、IP、端口),用于区分不同业务场景(如公网/内网、PC/移动端)。(指的是 用户使用不同的域名/ip/port来访问时,nginx 的不同处理标准)
一般都是修改这些
4.location {} 区域
Location 作用域(Location Context):匹配用户访问的具体文件路径,决定最终返回给用户的资源内容。
(指的是根据用户具体访问的文件路径,来匹配不同的页面给用户访问/下载的处理标准)
三、三次握手
0.确定方向与场景: windows 访问 百度服务器
1、(WIN)打开浏览器,输入 www.baidu.com
2、win 会通过网卡找到dns服务器,进行地址解析(域名-》ip)
3、确定了源IP 目标IP (TCP 协议 源端口53410 目标端口80),可以建立连接
4、访问网页(HTTP协议--》80端口)
开始向百度服务器建立三次握手
① 客-服 :SYN=1
② 服:ACK=1(单向连接完成),SYN=1
③ 客:ACK=1 (双向连接完成)
连接的是服务端80端口(因为服务端开启了nginx服务-->支持的协议是http--》网卡上开启80端口)
5、传输数据
进程与服务的关系
打开一个服务后,系统会为服务分配一个进程ID(表现形式是/proc/目录文件),也就是做个服务的主进程
主进程:支持服务存活、分配资源给服务程序使用、管理服务状态、创建子进程干活
子进程:干杂活的线程:处理最基础的任务(比如命令操作等)
总结
一、Nginx 配置文件不同区域及功能
1. main 全局区
匹配:整个 Nginx 服务
功能:设置进程数、日志路径、PID 文件等全局配置
2. events 事件区
匹配:连接处理
功能:设置最大连接数、IO 模型
3. http 服务区
匹配:所有网站服务
功能:定义日志格式、缓存、文件类型等
4. server 虚拟主机区
匹配:一个网站 / 一个虚拟主机
功能:定义监听端口、域名、网页根目录
5. location 匹配区
匹配:URL 地址
功能:根据访问路径做转发、代理、访问控制
二、Nginx 虚拟主机配置(3 种方式)
1. 基于域名(最常用)
nginx
server {
listen 80;
server_name www.benet.com;
root /html/benet;
index index.html;
}
server {
listen 80;
server_name www.yjs.com;
root /html/yjs;
index index.html;
}
使用场景企业官网、论坛、商城、后台系统
云服务器低配多站点部署,节约机器成本
虚拟主机服务商:一台机器卖给很多用户做网站
一台服务器、一个 IP,运行多个网站,节省服务器资源。
2. 基于不同 IP
nginx
server {
listen 192.168.110.129:80;
root /html/ip1;
}
server {
listen 192.168.110.130:80;
root /html/ip2;
}
使用场景不同业务分开 IP,便于防火墙、权限单独管控
网站需要独立 IP 备案 / SSL 证书
金融、政务等对隔离性、安全性要求高的业务
服务器有多个独立 IP,每个网站使用独立 IP,更安全、隔离性好。
3. 基于不同端口
nginx
server {
listen 80;
root /html/80;
}
server {
listen 8080;
root /html/8080;
}
使用场景开发 / 测试环境:正式站 80、测试站 8080
内网管理系统、后台服务、项目演示站
本地实验、内网服务部署,不用配置域名
没有多余域名、没有多余 IP,用端口区分测试环境、后台服务、多个项目。
三、Nginx 反向代理 + 负载均衡(预习)
1. 反向代理是什么
客户端访问 Nginx
Nginx 转发请求给后端服务器
用户不知道真实服务器
作用
隐藏真实服务器、安全、中转请求、实现动静分离。
2. 负载均衡是什么
多台后端服务器
Nginx 把请求均匀分发到多台服务器
防止单台压力过大
作用
提高并发、减轻压力、避免宕机、提升稳定性。
3. 为什么要用
安全:隐藏真实服务器 IP
高性能:分担压力
高可用:一台挂掉不影响服务
节约成本:一台机器可以代理 / 分发多个服务
四、作业总结(可直接写在最后)
Nginx 配置分 5 大区域:main、events、http、server、location
虚拟主机 3 种:域名、IP、端口
反向代理 = 中转请求
负载均衡 = 分发压力
杂谈自己做
假设:
用户访问的域名是
http://www.dog.com
http://www.cat.com
http://www.dog.com/bbs/install.html
场景一:
给公司做一个首页 2个访问入口,一个公网--给用户用的 ,一个是内网,给自己人用的
场景二:
一个是移动端业务
一个是浏览器业务
