前言

补充

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 install

  yum 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个访问入口,一个公网--给用户用的 ,一个是内网,给自己人用的
场景二:
一个是移动端业务
一个是浏览器业务


 

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐