linux系统---nginx(3)核心配置指令及调优

news2024/11/18 19:34:16

目录

Nginx 核心配置指令

一、Nginx配置文件详解

1、配置文件目录

2、配置文件结构

二、调优

1、在全局域进行的调优

1.1线程池指令

1.2 工作进程数指令

2.1 工作进程并非数指令

2.2 事件处理机制选择指令

2.3 互斥锁指令

3、在http指令域的调优

3.1 Nginx端口监听(listen指令)

3.2 Nginx root指令根目录配置

3.3 Nginx alias 访问路径别名指令

3.4 Nginx localhost 路由匹配规则

3.4.1 匹配规则


Nginx 核心配置指令

作为一款高性能的 HTTP 服务器软件,Nginx 的核心功能就是应对 HTTP 请求的处理。由于具体硬件、操作系统及应用场景的不同,需要 Nginx 在对 HTTP 请求的处理方法上进行不同的调整,为了应对这些差异,Nginx 提供了多种配置指令,让用户可以根据实际的软硬件及使用场景进行灵活配置。

为了方便理解和使用,可以按照其在代码中的分布,将其分为核心配置指令和模块配置指令两大类。核心配置指令分为事件核心配置指令和 HTTP 核心配置指令,事件核心配置指令主要是与 Nginx 自身软件运行管理及 Nginx 事件驱动架构有关的配置指令;HTTP 核心配置指令是对客户端从发起 HTTP 请求、完成 HTTP 请求处理、返回处理结果,到关闭 HTTP 连接的完整过程中的各个处理方法进行配置的配置指令。模块配置指令是在每个 Nginx 模块中对所在模块的操作方法进行配置的配置指令。

一、Nginx配置文件详解

Nginx 默认编译安装后,配置文件都会保存在 /usr/local/nginx/conf 目录下,在配置文件目录下,Nginx 默认的主配置文件是 nginx.conf,这也是 Nginx 唯一的默认配置入口。

1、配置文件目录

Nginx 配置文件在 conf 目录下,其默认目录结构如下。

其中,以".default"为扩展名的文件是 Nginx 配置文件的配置样例文件。各配置文件的说明如下。

  1. fastcgi_params:Nginx 在配置 FastCGI 代理服务时会根据 fastcgi_params 文件的配置向 FastCGI 服务器传递变量,该配置文件现已由 fastcgi.conf 代替;
  2. fastcgi.conf:为了规范配置指令 SCRIPT_FILENAME 的用法,引入 FastCGI 变量传递配置;
  3. mime.types:MIME 类型映射表,Nginx 会根据服务端文件后缀名在映射关系中获取所属文件类型,将文件类型添加到 HTTP 消息头字段"Content-Type"中;
  4. nginx.conf:Nginx 默认的配置入口文件;
  5. scgi_params:Nginx 在配置 SCGI 代理服务时会根据 scgi_params 文件的配置向 SCGI 服务器传递变量;
  6. uwsgi_params:Nginx 在配置 uWSGI 代理服务时会根据 uwsgi_params 文件的配置向 uWSGI 服务器传递变量;
  7. koi-utf、koi-win、win-utf:这 3 个文件是 KOI8-R 编码转换的映射文件,因为 Nginx 的作者是俄罗斯人,在 Unicode 流行之前,KOI8-R 是使用最为广泛的俄语编码。

2、配置文件结构

为了便于了解 Nginx 配置文件的内部结构,这里约定几个名词的定义。

1) 配置指令

在配置文件中,由 Nginx 约定的内部固定字符串,Nginx 官方文档中的英文单词为 directive,本教程中则统一称为配置指令,简称指令。指令是 Nginx 中功能配置的最基本元素,Nginx 的每个功能配置都是通过多个不同的指令组合来实现的。

2) 配置指令值

每个配置指令都有对应的内容来表示该指令的控制参数,本教程中约定其对应的内容为配置指令值,简称指令值。指令值可以是字符串、数字或变量等多种类型。

3) 配置指令语句

指令与指令值组合构成指令语句。一条指令语句可以包含多个配置指令值,在 Nginx 配置文件中,每条指令语句都要用;作为语句结束的标识符。

4) 配置指令域

配置指令值有时会是由{ }括起来的指令语句集合,本教程中约定{ }括起来的部分为配置指令域,简称指令域。指令域既可以包含多个指令语句,也可以包含多个指令域。

5) 配置全局域

配置文件 nginx.conf 中上层没有其他指令域的区域被称为配置全局域,简称全局域。
Nginx 的常见配置指令域如下表所示。

域名称

域类型

域说明

main

全局域

Nginx 的根级别指令区域。该区域的配置指令是全局有效的,该指令名为隐性显示,nginx.conf 的整个文件内容都写在该指令域中

events

指令域

Nginx 事件驱动相关的配置指令域

http

指令域

Nginx HTTP 核心配置指令域,包含客户端完整 HTTP 请求过程中每个过程的处理方法的配置指令

server

指令域

Nginx 用来定义服务 IP、绑定端口及服务相关的指令区域

location

指令域

对用户 URI 进行访问路由处理的指令区域

stream

指令域 

Nginx 对 TCP 协议实现代理的配置指令域(负载均衡)

types

指令域

定义被请求文件扩展名与 MIME 类型映射表的指令区域

if

指令域 

按照选择条件判断为真时使用的配置指令域

打开系统默认的 nginx.conf 文件,可以看到整个文件的结构如下。

由上述配置文件可以看出,配置文件中的指令和指令值是以类似于 key-value 的形式书写的。写在配置文件全局域的指令是 Nginx 配置文件的核心指令,主要是对 Nginx 自身软件运行进行配置的指令。其中,events 和 http 所包含的部分分别为事件指令域和 HTTP 指令域,指令域内的指令则明确约定了该区域内的指令的应用范围。

server 指令域被包含于 http 指令域中,同时又包含了 location 指令域,各指令域中的共用范围逐层被上层指令域限定,可见各指令域匹配的顺序是由外到内的。Nginx 的配置指令按照内部设定可以同时编写在不同指令域中,包含在最内层的指令将对外层同名指令进行指令值覆盖,并以最内层指令配置为最终生效配置。

编写 Nginx 配置文件时,为了便于维护,也会把一些指令或指令域写在外部文件中,再通过 include 指令引入 nginx.conf 主配置文件中。例如,配置文件中把写有 types 指令域的 mime.types 文件引用到 http 指令域中。此处使用的是 nginx.conf 文件的相对路径。

二、调优

1、在全局域进行的调优

Nginx 是按照事件驱动架构设计的。每个外部请求都以事件的形式被工作进程(Worker Process)响应,并发完成各种功能的操作处理。Nginx 工作进程的性能依赖于硬件和操作系统的配置,在实际应用场景中,用户需要按照硬件、操作系统或应用场景需求的侧重点进行相应的配置调整。

1.1线程池指令

名 称

线程池指令

指令

thread_pool

作用域

main

默认值

thread_pool default threads=32 max_queue=65536;

指令说明

线程池配置指令,允许调整默认线程池或创建新的线程池,用于读取和发送文件的场景中。在线程池中所有线程都繁忙时,新的请求任务将在队列中等待,默认情况下,等待队列中的最大任务数是 65536,使用线程池机制时,通过配置该指令,可以在因读取和发送文件引发阻塞的场景中提升 Nginx 读取和发送文件的处理性能

配置样例如下:

 

具体参数说明如下。

  1. thread_pool 也可以编写在 http 指令域中;
  2. threads 参数定义了线程池的线程数;
  3. max_queue 参数指定了等待队列中的最大任务数,在线程池中所有线程都处于繁忙状态时,新任务将进入等待队列。等待队列中的最大任务数为 65536;
  4. 线程池指令需要在编译配置时增加 --with-threads 参数。
1.2 工作进程数指令

名 称

 工作进程数指令

指令

worker_processes

作用域

main

默认值

1

可配置选项

number 或 auto

worker_processes auto;

工作进程数指令的指令值有两种类型,分别为数字和 auto。指令值为 auto 时,Nginx 会根据 CPU 的内核数生成等数量的工作进程。

指令说明

依据 Nginx 架构可知,工作进程数量的最佳配置是小于或等于 CPU 内核的数量。通过该指令可以手动设置工作进程的数量,该指令也支持 auto 指令值,由 Nginx 进行自动分配

1.3工作进程优先级指令

名 称

工作进程优先级指令

指令

worker_priority

作用域

main

默认值

0

指令说明
  1. 工作进程优先级设定指令,可以通过该指令设定工作进程在 Linux 系统中的优先级(nice 值)
  2. worker_priority 指令值的取值范围是 -20~19,数值越小,优先级越高,获得的 CPU 时间就越多。配置生效后可以通过如下命令查看,输出结果如下图所示。

查看默认优先级

ps axo pid,cmd,psr,ni|grep nginx|sort -n

 1.4 工作进程 CPU 绑定指令

名 称

工作进程 CPU 绑定指令

指令

worker_cpu_affinity

作用域

main

默认值

--

可配置选项

cpumark 或 auto

指令说明

Nginx 工作进程处于高效的工作状态是因为充分利用了进程与 CPU 的亲缘性,使每个工作进程均可固定在一个 CPU 上运行。该指令可以手动进行工作进程与 CPU 的绑定,当然也可以通过设定指令值 auto 交由 Nginx 自动分配

配置样例如下:

指令值是用 CPU 掩码来表示的,使用与 CPU 数量相等位数的二进制值来表示。单个 CPU 用单个二进制值表示,多个 CPU 组合可用二进制值相加来表示。如配置样例所示,CPU 有 8 个核,分别表示绑定了从第 0 核到第 7 核的 CPU。CPU 核数是从 0 开始计数的。

指令值除了可以是 CPU 掩码外,还可以是 auto。当指令值为 auto 时,Nginx 会自动进行 CPU 绑定。

配置样例如下:

工作进程与 CPU 核数也可以是多种对应组合,指令语句如下:

 1.5 调试可打开的文件个数

名 称

工作进程 CPU 绑定指令

指令

worker_rlimit_nofile

作用域

main

默认值

--

指令说明

所有worker进程能打开的文件数量上限,包括:Nginx的所有连接(例如与代理服务器的连接等),而不仅仅是与客户端的连接,另一个考虑因素是实际的并发连接数不能超过系统级别的最大打开文件数的限制.最好与ulimit -n 或者limits.conf的值保持一致,只要机器性能够多加几个也没问题

1.6 调试文件大小指令 

名称

调试文件大小指令

指令

worker_rlimit_core

作用域

main

默认值

--

指令说明

该指令是崩溃文件大小的设置指令。因为崩溃文件会存储非常详细的信息,数据量很大,很容易把磁盘空间占满,因此需要合理限制崩溃文件的文件大小

1.7 只运行主进程指令 

名 称

主进程指令

指令

master_process

作用域 

main

默认值

on

可配置选项

on 或 off

指令说明 

Nginx 默认是以一个主进程管理多个工作进程的工作方式,设定指令值为 off 时,Nginx 将只运行一个主进程来处理所有请求

master_process off;当只由主进程处理请求时,调试进程会更加方便。

 1.8 常见进程管理指令

指令

默认值

指令说明

daemon

on

用于设定 Nginx 进程是否以守护进程的方式在后台运行,on 为启用,off 为不启用

pid

logs/nginx.pid

设定保存 Nginx 主进程 ID 的文件路径

load_module

--

加载动态模块的指令

include

--

加载外部配置文件

error_log

logs/error.log error

指定错误日志文件路径及文件名

 2、在events指令域进行的调优(指令调优)

Nginx 是采用事件驱动式架构处理外部请求的,这一架构使得 Nginx 在现有硬件架构下可以处理数以万计的并发请求。通过事件处理指令的配置可以让 Nginx 与实际运行的硬件及系统进行有效的适配,从而发挥更加高效的并发处理能力。Nginx 的事件处理指令编辑在 events 指令域中,如下面表格中所示。

2.1 工作进程并非数指令

名称

工作进程并发数指令

指令

worker_connections

作用域

events

默认值

512

指令说明

每个 Nginx 工作进程可处理并发连接的最大数

配置样例如下:

Linux 系统下,因为每个网络连接都将打开一个文件描述符,Nginx 可处理的并发连接数受限于操作系统的最大打开文件数,同时所有工作进程的并发数也受 worker_rlimit_nofile 指令值的限制。

2.2 事件处理机制选择指令

名 称

事件处理机制选择指令

指令

use

作用域

events

默认值

--

指令说明

Nginx 内部有多种事件处理机制模型,以下简称事件模型。默认情况下,Nginx 会自动选择一种高效的事件模型,用户可以通过该指令自行选择事件模型进行事件处理

配置样例如下:

 

Nginx 支持的事件模型有 select、poll、kqueue、epoll、/dev/poll、eventport。

2.3 互斥锁指令

名称

互斥锁指令

指令

accept_mutex

作用域 

events

默认值

off

可配置选项 

on 或 off

指令说明

设置是否启用互斥锁模式的进程调度

on为同一时刻一个请求轮流由work进程处理,而防止被同时唤醒所有worker,避免多个睡眠进程被唤醒的设置,默认为off,新请求会唤醒所有worker进程,此过程也称为"惊群",因此nginx刚安装完以后要进行适当的优化。建议设置为on

2.4 多请求支持指令 

名称

 多请求支持指令

指令

multi_accept

作用域

events

默认值

off

可配置选项

on 或 off

指令说明

默认情况下,每个工作进程一次只接收一个新连接。如果开启该指令,则每个工作进程将接收所有的新连接。

ON时Nginx服务器的每个工作进程可以同时接受多个新的网络连接,此指令默认为off,即默认为一个工作进程只能一次接受一个新的网络连接,打开后几个同时接受多个。建议设置为on。

 指令配置样例

3、在http指令域的调优

3.1 Nginx端口监听(listen指令)

名称

端口监听指令

指令

listen

作用域

server

默认值

listen*:80 或 *:8000

指令说明

服务监听端口、绑定 IP、监听方式的配置

 Nginx 服务通过 listen 指令的指令值监听网络请求,可以是 IP 协议的形式,也可以是 UNIX 域套接字。如果不设置 listen 指令,Nginx 在以超级用户运行时则监听 80 端口,以非超级用户运行时则监听 8000 端口。

3.2 Nginx root指令根目录配置

用户请求的最终结果是要返回数据,当响应文件在 Nginx 服务器本地时,需要进行本地文件位置、读或写、返回执行结果的操作。Nginx 中的 root 指令可以设定请求 URL 的本地文件根目录,如下表所示。

名称

根目录指令

指令

root

作用域

http, server, location

默认值

on

指令说明

设定请求 URL 的本地文件根目录

 配置样例如下:

当 root 指令在 location 指令域时,root 设置的是 location 匹配访问路径的上一层目录,样例中被请求文件的实际本地路径为 /data/web/flv/。
location 中的路径是否带"/",对本地路径的访问无任何影响。 

3.3 Nginx alias 访问路径别名指令

Nginx 中想要配置虚拟目录可以使用 alias 指令,该指令的介绍如下表所示:

名 称

访问路径别名指令

指令

alias

作用域

location

默认值

--

指令说明

默认情况下,本地文件的路径是 root 指令设定根目录的相对路径,通过 alias 指令可以将匹配的访问路径重新指定为新定义的文件路径。

配置样例如下:

 

可以用如下命令进行访问测试:

 

alias 指定的目录是 location 路径的实际目录,其所在 location 的 rewrite 指令不能使用 break 参数。

3.4 Nginx localhost 路由匹配规则

URI 即统一标识资源符,通用的 URI 语法格式如下:

格式说明如下:

  1. 在 Nginx 的应用场景中,URL 与 URI 并无明确区别。URI 标准(RFC3986)中约定,URL 是 URI 的一个子集;
  2. scheme 是 URI 请求时遵守的协议,常见的有 HTTP、HTTPS、FTP;
  3. host[:port] 是主机名与端口号,HTTP 协议的默认端口是 80,HTTPS 协议的默认端口是 443;
  4. [/path] 是访问路径与访问文件名;
  5. [?query] 是访问参数,访问参数以"?"开始作标识,由多个以"&"连接的 key=value 形式的字符串组成。
3.4.1 匹配规则

location 是 Nginx 对 HTTP 请求中的 URI 进行匹配处理的指令,location 的语法形式如下:

其中,[=|~*|^~|@]部分称为 location 修饰语(Modifier),修饰语定义了与 URI 的匹配方式。pattern 为匹配项,可以是字符串或正则表达式。
①无修饰语:完全匹配 URI 中除访问参数以外的内容,匹配项的内容只能是字符串,不能是正则表达式。

 

②修饰语"=":用于标准url前,需要请求字串与uri精确匹配,大小敏感,如果匹配成功就停止向下匹配并立即处理请求。

③修饰语"~":完全匹配 URI 中除访问参数以外的内容,Linux 系统下会区分大小写,Windows 系统下则会无效。匹配项的内容必须是正则表达式。

④修饰语"~*":完全匹配 URI 中除访问参数以外的内容,不区分大小写。匹配项的内容必须是正则表达式。

⑤修饰语"^~":用于标准url前,表示包含正则表达式,并且匹配以指定的正则表达式开头,对URI的最左边部分做匹配检查,不区分字符大小写

 

#匹配优先级从高到低:

=, ^~, ~/~*, 不带符号

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1485032.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

无所不谈,百无禁忌,Win11本地部署无内容审查中文大语言模型CausalLM-14B

无内容审查机制大模型整合包,基于CausalLM-14B量化 目前流行的开源大语言模型大抵都会有内容审查机制,这并非是新鲜事,因为之前chat-gpt就曾经被“玩”坏过,如果没有内容审查,恶意用户可能通过精心设计的输入(prompt&a…

leetcode刷题记录:动态规划02,子序列问题

参考labuladong的算法小抄整理 link 子序列问题,用一维dp数组或二维dp数组来解决。 一维数组:最大子数组和,最长递增子序列。dp[i]的定义:在子数组 arr[0…i] 中,以 arr[i] 结尾的子序列的长度是 dp[i]。二维数组&…

【Vue3】解锁Vue3黑科技:探索接口、泛型和自定义类型的前端奇迹

💗💗💗欢迎来到我的博客,你将找到有关如何使用技术解决问题的文章,也会找到某个技术的学习路线。无论你是何种职业,我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章,也欢…

【大数据架构(3)】Lambda vs. Kappa Architecture-选择你需要的架构

文章目录 一. Data Processing Architectures1. Lambda Architecture1.1. 架构说明a. Data Ingestion Layerb. Batch Layer (Batch processing)c. Speed Layer (Real-Time Data Processing)d. Serving Layer 1.2. Lambda Architecture的优缺点1.3. 使用案例 2. Kappa Architect…

【风格迁移】StyTr2:引入 Transformer 解决 CNN 在长距离依赖性处理不足和细节丢失问题

StyTr2:引入 Transformer 解决 CNN 在长距离依赖性处理不足和细节丢失问题 提出背景StyTr2 组成StyTr2 架构 提出背景 论文:https://arxiv.org/pdf/2105.14576.pdf 代码:https://github.com/diyiiyiii/StyTR-2 问题: 传统的神经…

NOC2023软件创意编程(学而思赛道)python初中组初赛真题

软件创意编程 一、参赛范围 1.参赛组别:小学低年级组(1-3 年级)、小学高年级组(4-6 年级)、初中组。 2.参赛人数:1 人。 3.指导教师:1 人(可空缺)。 4.每人限参加 1 个赛项。 组别确定:以地方教育行政主管部门(教委、教育厅、教育局) 认定的选手所属学段为准。 二、…

云主机和传统主机到底有什么区别呢?

随着信息技术的快速发展,企业对IT基础设施的要求越来越高,许多问题等待解决:政府传统部署扩容升级麻烦、公司服务器维护周期长、建设和维护成本低等。运营成本高; 安全稳定性差、数据易丢失等问题亟待解决。 云主机的出现很大程度…

蓝桥杯集训·每日一题2024 (前缀和)

笔记&#xff1a; 例题&#xff1a; #include<bits/stdc.h> using namespace std; const int N 5000010; char str[N]; int s[N]; int main(){int t;cin>>t;for(int a1;a<t;a){int n;cin>>n;scanf("%s",str1);for(int i1;i<n;i){s[i]s[i-1]…

【教学类-36-12】20240302对称画右脸或左脸(中班《幼儿园里朋友多》)(midjounery-v 5.1 Python图片切割)

作品展示&#xff1a; 背景需求&#xff1a; 中班《幼儿园里朋友多》操作材料包——画对称脸 尝试用midjounery获得更多幼儿正脸图形&#xff0c;切割一半&#xff0c;制作相似的学具 一、MJ获取简笔画图案 风变编程——MJ 第1个关键词 Childrens face, front, simple stro…

switch开关语句

定义 单条件多分支的开关语句。 格式定义 switch(表达式) { case 常量值1: 若干个语句 break; ... case 常量值n: 若干个语句 break; default: 若干语句 } ★注意★&#xff1a; ① 表达式的值必须与int兼容类型&#xff1a; byte&#xff0c;short&#xff0c;int&#xff…

CI/CD笔记.Gitlab系列.`gitlab-ci.yml`中的头部关键字

CI/CD笔记.Gitlab系列 gitlab-ci.yml中的头部关键字 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at: https://jclee95.blog.csdn.netMy WebSite&#xff1a;http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https://blog.csdn.ne…

解读OWASP应用安全验证标准ASVS

OWASP应用程序安全验证标准&#xff08;OWASP Application Security Verification Standard&#xff0c;ASVS&#xff09;为测试web应用程序技术安全控制提供了基础&#xff0c;还为开发人员提供了安全开发的要求列表。 1. 简介 OWASP应用安全验证标准&#xff0c;是一份测试应…

二维码门楼牌管理系统:城市数字化管理的新里程碑

文章目录 前言一、二维码门楼牌管理系统的构成二、二维码门楼牌管理系统的功能三、二维码门楼牌管理系统的应用四、二维码门楼牌管理系统的未来发展 前言 随着城市管理的数字化、智能化水平不断提升&#xff0c;二维码门楼牌管理系统作为一种创新的城市管理方法&#xff0c;正…

面试复盘——14

前言 无锡的一家企业&#xff0c;但是看Boss上面给的薪资不高还是要求硕士…面试体验很棒&#xff0c;hr、技术、三个人一起的。 一面 问技术栈&#xff0c;接触了Go多久&#xff0c;先前是用什么的。 Golang的切片、特点。 切片赋值的时候如果使用&#xff0c;是什么拷贝…

Java面试——Redis

优质博文&#xff1a;IT-BLOG-CN 一、Redis 为什么那么快 【1】完全基于内存&#xff0c;绝大部分请求是纯粹的内存操作&#xff0c;非常快速。数据存在内存中。 【2】数据结构简单&#xff0c;对数据操作也简单&#xff0c;Redis中的数据结构是专门进行设计的。 【3】采用单线…

Linux——进程控制(二)进程等待

目录 前言 一、进程等待 二、如何进行进程等待 1.wait 2.waitpid 2.1第二个参数 2.2第三个参数 3. 等待多个进程 三、为什么不用全局变量获取子进程的退出信息 前言 前面我们花了大量的时间去学习进程的退出&#xff0c;退出并不难&#xff0c;但更深入的学习能为本…

【深度优先搜索】【树】【C++算法】2003. 每棵子树内缺失的最小基因值

作者推荐 动态规划的时间复杂度优化 本文涉及知识点 深度优先搜索 LeetCode2003. 每棵子树内缺失的最小基因值 有一棵根节点为 0 的 家族树 &#xff0c;总共包含 n 个节点&#xff0c;节点编号为 0 到 n - 1 。给你一个下标从 0 开始的整数数组 parents &#xff0c;其中…

AI Earth数据集——中国10米地物分类数据集(AIEC)

AIEarth中国10米地物分类数据集(AIEC) 简介与Notebook示例 达摩院AI Earth团队自研的中国区10m分辨率地物分类产品&#xff0c;数据包含2020-2022年中国逐年土地覆盖信息。研究团队利用Sentinel-2 数据集&#xff0c;借助深度学习方法&#xff0c;融合了多时序、多模态、Low L…

2024真正有效的苹果mac电脑清理工具CleanMyMac X

一、前言 对于Mac用户来说&#xff0c;电脑卡顿、运行缓慢无疑是一件令人头疼的事情。而市面上的清理软件又五花八门&#xff0c;效果参差不齐&#xff0c;如何才能找到一款真正有效的清理工具呢&#xff1f;今天&#xff0c;我们为大家推荐一款实力派电脑清理软件——CleanMy…

Tomcat基础及与Nginx实现动静分离,搭建高效稳定的个人博客系统

目录 引言 一、TOMCAT基础功能 &#xff08;一&#xff09;自动解压war包 &#xff08;二&#xff09;状态页 1.登录状态页 2.远程登录 &#xff08;三&#xff09;服务管理界面 &#xff08;四&#xff09;Host虚拟主机 1.设置虚拟主机 2.建立站点目录与文件 二、实…