【企业高性能web服务器(Nginx)】

概念介绍

在这里插入图片描述

Apache和nginx的介绍

工作原理和概念:

Apache的工作原理和概念
工作原理:

多进程模型:Apache默认使用的是多进程模型,每个子进程可以处理一个或多个客户端请求。
线程模型:Apache也可以配置成使用线程模型(如使用mod_thread模块),在这种模式下,每个子进程可以创建多个线程来处理请求。
请求处理流程:Apache接收到请求后,会根据配置文件(通常是httpd.conf)中的指令来解析请求,然后调用相应的模块来处理请求。

工作模式:

Prefork模式:预先创建多个子进程,每个子进程处理一定数量的请求。
Worker模式:使用线程来处理请求,每个子进程可以创建多个线程。
Event模式:使用事件驱动的方式来处理请求,适用于高并发场景。

优缺点

优点:
稳定性和成熟度:Apache是一个成熟且稳定的Web服务器,广泛用于静态内容和动态内容的交付。
丰富的模块支持:Apache有大量可用的模块,可以轻松扩展其功能。
强大的社区支持:由于其广泛的使用,Apache有一个强大的社区支持,文档和教程非常丰富。
缺点:
性能瓶颈:在高并发场景下,Apache的多进程模型可能会成为性能瓶颈。
内存占用较高:每个子进程都需要独立的内存空间,可能导致较高的内存占用。

Nginx的工作原理和概念
工作原理:

异步非阻塞I/O:Nginx使用的是异步非阻塞I/O模型,可以同时处理大量的并发连接。
事件驱动:Nginx基于事件驱动模型,每个事件(如新的客户端连接、数据读写等)都会触发相应的处理逻辑。
请求处理流程:Nginx接收到请求后,会根据配置文件(通常是nginx.conf)中的指令来解析请求,然后调用相应的模块来处理请求。

工作模式:

Master-Worker模式:Nginx有一个主进程和多个工作进程。主进程负责接收客户端请求并分配给工作进程,工作进程负责实际处理请求。
优点:
高性能:Nginx在高并发场景下表现出色,能够高效处理大量并发连接。
低资源消耗:由于其异步非阻塞I/O模型,Nginx的资源消耗较低。
丰富的功能模块:Nginx支持丰富的功能模块,可以轻松扩展其功能。
缺点:
处理复杂请求的能力较弱:Nginx在处理复杂的动态请求时,可能不如Apache强大。
配置复杂性:Nginx的配置文件相对复杂,新手可能需要花费更多时间来学习和调试。

总体的架构思想

Apache的架构思想:
模块化设计:Apache采用模块化设计,可以通过加载不同的模块来扩展其功能。
多进程或多线程模型:Apache支持多种工作模式,包括多进程和多线程模型,以适应不同的应用场景。

Nginx的架构思想:
事件驱动:Nginx采用事件驱动架构,能够高效处理大量并发连接。
异步非阻塞I/O:Nginx利用异步非阻塞I/O模型,实现了高性能和低资源消耗。

总结

总结来说,Apache和Nginx各有优缺点,选择哪一个取决于具体的应用场景和需求。Apache更适合处理复杂的动态请求,而Nginx在高并发场景下表现更优秀。在实际应用中,常常会结合使用Apache和Nginx,发挥各自的优势。

基本配置实验

nginx的源码编译

下好安装包:
在这里插入图片描述
安装C语言以及其他环境
在这里插入图片描述
在这里插入图片描述
开始编译
在这里插入图片描述
如果后面没有服务,需要执行 make && make install 命令

解释执行make && make install 命令原因

在Linux中通过源码安装软件时,通常会经历以下几个步骤:

  1. 下载源码:从官方网站或其他可信来源下载软件的源码包。
  2. 解压源码:使用适当的工具(如tar, unzip等)解压源码包。
  3. 配置编译选项:进入解压后的源码目录,运行./configure脚本来配置编译选项。这个脚本会检查系统环境,确定软件的安装路径以及其他配置选项,并生成Makefile文件。
  4. 编译源码:运行make命令来编译源码。这个过程会根据前面生成的Makefile文件中的规则,将源码编译成可执行文件或库文件。
  5. 安装软件:运行make install命令来安装编译后的软件。这个过程会将编译好的文件复制到系统中的适当位置,使其可以在系统中正常运行。
为什么需要执行make && make install
  1. 编译过程make命令负责根据configure脚本生成的Makefile文件,将源码编译成可执行文件或库文件。这一步骤是必要的,因为不同的系统环境可能需要不同的编译选项和优化参数。

  2. 安装过程make install命令负责将编译好的文件复制到系统中的适当位置。这样,系统就可以找到并运行这些文件。如果不执行make install,编译好的文件将不会被安装到系统中,软件也无法正常运行。
    总结 : 执行make && make install命令是源码安装过程中必不可少的步骤。make命令负责编译源码,而make install命令负责将编译好的文件安装到系统中,使其可以正常运行。这两个步骤确保了软件能够在当前系统环境中正确运行。

nginx的平滑升级及版本回滚

准备编译:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
之后:那个yebeichen是自定义的名字
在这里插入图片描述
操作NGINX服务
在这里插入图片描述
命令解释:
您遇到的错误信息 nginx: invalid option: "-s start" 表明您在尝试使用 -s start 参数启动Nginx时出现了问题。实际上,-s 参数在Nginx中用于发送信号给Nginx主进程,而不是用来启动Nginx。

正确的使用 -s 参数的方式是:

  • -s stop:立即停止Nginx。
  • -s quit:优雅地停止Nginx。
  • -s reopen:重新打开日志文件。
  • -s reload:重新加载配置文件。

如果您想要启动Nginx,应该直接运行Nginx的可执行文件,而不需要任何额外的参数。例如:

/usr/local/nginx/sbin/nginx 

这将启动Nginx服务。如果您希望使用Systemd来管理Nginx服务,可以使用以下命令:

systemctl start nginx

请确保你有适当的权限来执行这些命令,如果需要,可以在命令前加上 sudo

如果已经在使用Systemd管理Nginx,并且希望启动服务,那么使用 systemctl start nginx 是更合适的方法。如果您手动启动Nginx,那么只需运行Nginx的可执行文件即可。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(之后一定要去新版本的 nginx下面执行 make &&make install 这里应该是Server后面1.26的,我这里后面执行忘截图了)

启动文件

在这里插入图片描述
在这里插入图片描述
解析:

这段代码定义了一个 systemd 服务单元文件,用于管理 Nginx Web 服务器。Systemd 是大多数现代 Linux 发行版使用的系统和服务管理器。下面是对这个 nginx.service 文件的逐节解释:

[Unit] 部分

  • Description=The NGINX HTTP and reverse proxy server: 描述服务的简短说明。
  • After=syslog.target network-online.target remote-fs.target nss-lookup.target: 指定此服务应在哪些其他服务之后启动。这里表示 Nginx 应在系统日志服务、网络服务、远程文件系统和名称服务查找服务启动后启动。
  • Wants=network-online.target: 表示如果 network-online.target 成功启动,则 Nginx 服务也会被启动。这是一种弱依赖关系,意味着即使网络服务启动失败,Nginx 也可能会尝试启动。

[Service] 部分

  • Type=forking: 指示服务的启动行为。对于 Nginx,这意味着主进程启动后会 fork 出子进程,而主进程将退出。systemd 会监控子进程中的一个特定进程(通常是 PID 1)作为服务的代表。
  • PIDFile=/usr/local/nginx/logs/nginx.pid: 指定 Nginx 主进程的 PID 文件的位置。systemd 会使用这个文件来跟踪 Nginx 的主进程。
  • ExecStartPre=/usr/local/nginx/sbin/nginx -t: 在启动 Nginx 之前执行的命令,用于检查配置文件的语法是否正确。
  • ExecStart=/usr/local/nginx/sbin/nginx: 启动 Nginx 服务的命令。
  • ExecReload=/usr/local/nginx/sbin/nginx -s reload: 重新加载 Nginx 配置的命令。
  • ExecStop=/bin/kill -s QUIT $MAINPID: 停止 Nginx 服务的命令。这里使用 QUIT 信号来优雅地关闭 Nginx。
  • PrivateTmp=true: 为服务分配独立的临时空间,这样服务就不能访问其他服务的临时文件,增加了安全性。

[Install] 部分

  • WantedBy=multi-user.target: 表示这个服务应该在多用户模式下启用。当系统启动到多用户模式时,这个服务会被自动启动。

通过将这个文件放置在 /lib/systemd/system/ 目录下,并使用 systemctl 命令,你可以控制 Nginx 服务的启动、重启、停止和状态查询等操作。例如:

# 启动 Nginx 服务
systemctl start nginx.service
 
# 停止 Nginx 服务
systemctl stop nginx.service
 
# 重启 Nginx 服务 
systemctl restart nginx.service 
 
# 重新加载 Nginx 配置
systemctl reload nginx.service 
 
# 查看 Nginx 服务状态
systemctl status nginx.service
 
# 设置开机自启
systemctl enable nginx.service
 
# 取消开机自启 
systemctl disable nginx.service

请注意,这个 nginx.service 文件是针对特定安装路径的 Nginx 配置的,如果你的 Nginx 安装路径不同,你需要相应地修改文件中的路径。

nginx命令参数(全局配置)

在这里插入图片描述
worker_cpu_affinity 0101 1010

worker_cpu_affinity 指令用于设置 Nginx 工作进程的 CPU 亲和性。这允许你将特定的工作进程绑定到特定的 CPU 核心,从而优化性能,尤其是在多核或多处理器系统上。

worker_cpu_affinity 指令后面跟的是一个或多个二进制掩码,每个掩码对应一个工作进程。每个二进制位代表一个 CPU 核心,其中 1 表示该核心会被使用,0 表示不使用。

例如,假设你有一个 4 核心的 CPU,且你设置了两个工作进程:

  • 第一个工作进程的 CPU 亲和性掩码为 0101,这意味着它将绑定到第 1 和第 3 个核心(从右到左计数)。
  • 第二个工作进程的 CPU 亲和性掩码为 1010,这意味着它将绑定到第 2 和第 4 个核心。

这样设置的好处是可以避免 CPU 之间的竞争,提高缓存局部性,从而提升整体性能。

以下是具体的解释:

  • 0101:表示第 1 和第 3 个核心(因为这些位置上的二进制位为 1)。
  • 1010:表示第 2 和第 4 个核心。

如果你有更多的 CPU 核心或工作进程,你可以继续添加更多的掩码。

需要注意的是,worker_cpu_affinity 的效果取决于操作系统和硬件的支持。如果操作系统不支持 CPU 亲和性,那么这个指令将被忽略。

此外,如果你不确定如何设置 CPU 亲和性,或者你的系统没有特别高的并发需求,通常不需要手动设置这个指令。默认情况下,Nginx 会自动分配工作进程到所有可用的 CPU 核心。

第二部分
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这条命令使用了 Apache Benchmark (ab) 工具,它是 Apache HTTP 服务器项目的一部分,用于测试 HTTP 服务器的性能。ab 可以模拟多个并发请求来测试服务器的负载能力。

命令中的选项和参数解释如下:

  • -c 5000:表示并发(concurrent)请求的数量为 5000。这意味着 ab 将同时发送 5000 个请求到目标服务器
    (5000超标了,是因为当前会话只支持1024。可以强行临时增加当前会话的文件描述的数量ulimit -n 100000)。
  • -n 10000:表示总共要发送的请求数量为 10000。即使指定了并发请求数,ab 也会确保总共发送 10000 个请求。

请求是否 崩溃也跟当前会话窗口是否支持的请求数量有很大关系:

在linux里面/etc/security/limits.conf的nginx nofile 10000配置和在shell窗口设置命令ulimit -n 100000 执行:ab -n 30000 -c 15000 http://172.25.253.153/index.html为什么这个命令不会崩,还请大家解决回答
在这里插入图片描述

理论展示:
在这里插入图片描述

location用法

在这里插入图片描述

alias 说到底就是定义一个别名或者软连接,学过Apache就很容易明白
在这里插入图片描述
在这里插入图片描述

用户认证:

在这里插入图片描述

错误页面:

重点关注注释下面的和server下面的第三行
在这里插入图片描述

自定义错误日志

在这里插入图片描述
在这里插入图片描述

检测文件是否存在

把多余的注释掉
在这里插入图片描述
在这里插入图片描述

$uri内置变量简述

nginx里的$uri变量是Nginx内置的变量之一,用于表示当前请求的URI部分(不包括协议、主机名、端口和参数)

在Nginx的配置中,变量是一个非常重要的概念,它们可以在配置中的不同位置被引用,以动态地根据请求的特征来调整Nginx的运行行为。$uri是一个内置的变量,它代表当前请求的标准化后的URI,即除去了前面路径的尾部斜线[1]。

例1,如果请求的URL是 http://example.com/foo/bar.html,那么 $uri 的值将会是 /bar.html

使用$uri变量可以帮助我们编写更加灵活和强大的location匹配规则,以及控制Nginx如何处理这些请求。例如,可以利用$uri来指定特定的返回值、进行内部重定向或反向代理等操作。

例2

在Nginx的配置文件中,try_files指令用于处理请求的路径。它会尝试按顺序查找指定的文件,如果找不到,则会返回默认的错误页面。

try_files $uri $uri.html $uri/index.html /error/default.html; 这一行的含义如下:

  1. $uri:这是请求的原始URI。例如,如果用户请求的是 /about,那么这里就是 /about
  2. $uri.html:这是将请求的URI作为文件名,添加 .html 后缀。例如,如果用户请求的是 /about,那么这里就是 /about.html
  3. $uri/index.html:这是将请求的URI作为目录,并在其下查找 index.html 文件。例如,如果用户请求的是 /about,那么这里就是 /about/index.html
  4. /error/default.html:这是默认的错误页面。如果前面的三个路径都找不到对应的文件,那么就会返回这个页面。

所以,当一个请求到达Nginx时,它会首先尝试找到请求的原始URI对应的文件,如果找不到,就尝试找到请求的URI添加.html后缀的文件,如果还找不到,就尝试找到请求的URI作为目录下的index.html文件,如果仍然找不到,最后就会返回/error/default.html这个默认的错误页面。

nginx长链接控制

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

nginx的压缩功能

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

nginx的内建变量

在这里插入图片描述
代码:
在这里插入图片描述

nginx的网页从写功能

在这里插入图片描述

在这里插入图片描述

break和latest的区别和作用是什么

在Nginx的配置文件中,特别是在使用 rewrite 指令时,breaklast 是两个重要的标志,它们决定了重写规则如何影响后续的请求处理流程。下面是它们的区别和作用:

last 标志

  • 作用:当Nginx执行一个 rewrite 指令并遇到 last 标志时,它会停止当前的请求处理,并将新的URI重新开始新一轮的内部处理。这意味着Nginx会立即开始一个新的location匹配过程,就好像一个新的请求刚刚到达一样。
  • 特点:使用 last 标志后,所有在当前 server 块内的后续 rewrite 规则都不会被执行,因为Nginx已经开始了一个新的location匹配过程。

break 标志

  • 作用:当Nginx执行一个 rewrite 指令并遇到 break 标志时,它同样会停止当前的请求处理,但不会开始新的location匹配。相反,Nginx会继续执行当前location块内剩余的指令,包括输出过滤器、日志记录等。
  • 特点:使用 break 标志后,当前 location 块内的后续 rewrite 规则不会被执行,但其他指令(如 try_filesproxy_pass 等)会按照顺序继续执行。

示例

假设有以下的Nginx配置片段:

location / { 
    rewrite ^/old-path/(.*)$ /new-path/$1 last; 
    # 这里的指令不会被执行,因为使用了 `last` 标志
    proxy_pass http://backend; 
}
 
location /new-path/ {
    # 处理 /new-path/ 下的请求
    proxy_pass http://new-backend; 
} 

在上面的例子中,如果请求的URI是 /old-path/something,Nginx会将URI重写为 /new-path/something,然后开始一个新的location匹配过程,最终由 /new-path/ 对应的 location 块处理请求。

如果将 last 改为 break

location / { 
    rewrite ^/old-path/(.*)$ /new-path/$1 break; 
    # 这里的指令会继续执行,因为使用了 `break` 标志
    proxy_pass http://backend; 
}
 
location /new-path/ { 
    # 这里的指令不会被执行,因为没有机会匹配到
    proxy_pass http://new-backend; 
} 

在这种情况下,URI被重写为 /new-path/something,但Nginx不会开始新的location匹配,而是继续执行当前 location 块内的 proxy_pass 指令,将请求转发到 http://backend

总结来说,last 用于结束当前的location处理并开始新的匹配,而 break 用于结束当前的rewrite规则处理,但继续执行当前location内的其他指令。选择使用哪个标志取决于你的具体需求和预期的请求处理流程。

nginx网页从写实战案例(break小实验)

在这里插入图片描述
后面输出之后request_filename输出有 ’ ?’ 说明没有完全定义(忘截图了,只能口述)

在这里插入图片描述
if判定:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

return介绍
  • return`指令可以用于任何location块中,包括根location、正则表达式location和路径前缀location。
  • return指令会导致Nginx立即返回响应,不再处理当前location块中的其他指令。
  • 如果return指令中没有指定状态码,Nginx会默认使用200 OK状态码。
  • 如果return指令中没有指定响应体,Nginx会使用默认的错误页面。

总之,return指令在Nginx配置中是一个非常有用的工具,可以用于返回特定的HTTP状态码、重定向请求和显示自定义的错误消息。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

nginx的反向代理

反向代理的概念

反向代理(Reverse Proxy)是一种代理方式,它位于客户端和实际服务器之间。客户端发送请求到反向代理服务器,反向代理服务器根据请求目标选择合适的后端服务器处理请求,并将结果返回给客户端。对于客户端来说,它并不知道实际的服务器地址,只知道反向代理服务器的地址。

反向代理的实现原理

反向代理的实现原理主要包括以下几个步骤:

  1. 接收请求:反向代理服务器接收客户端发送的请求。
  2. 解析请求:反向代理服务器解析请求中的目标地址和端口。
  3. 选择后端服务器:根据解析得到的目标地址和端口,反向代理服务器选择合适的后端服务器来处理请求。
  4. 转发请求:反向代理服务器将请求转发到选定的后端服务器。
  5. 返回响应:后端服务器处理完请求后,将响应返回给反向代理服务器,反向代理服务器再将响应转发给客户端。

反向代理的工作模式

反向代理的工作模式主要有以下几种:

  1. 负载均衡:通过反向代理服务器将请求分发到多个后端服务器,实现负载均衡,提高系统的并发处理能力和可靠性。
  2. 安全防护:反向代理服务器可以作为一道防护屏障,隐藏后端服务器的真实地址,防止直接攻击。
  3. 缓存加速:反向代理服务器可以缓存常用请求的响应结果,减少后端服务器的压力,提高响应速度。
  4. SSL卸载:反向代理服务器可以负责处理SSL加密请求,减轻后端服务器的负担。

Nginx在反向代理中的应用

Nginx是一个广泛使用的反向代理服务器,它具有高效、稳定、灵活等特点。以下是Nginx在反向代理中的具体应用:

  1. 配置虚拟主机:通过配置不同的域名或IP地址,Nginx可以将请求分发到不同的后端服务器。
  2. 负载均衡:Nginx支持多种负载均衡算法,如轮询、最少连接数、IP哈希等,可以将请求均匀地分发到多个后端服务器。
  3. 缓存加速:Nginx支持HTTP代理缓存,可以缓存后端服务器的响应结果,减少重复请求,提高响应速度。
  4. SSL卸载:Nginx可以处理SSL加密请求,卸载SSL加密任务,减轻后端服务器的负担。

总结

反向代理是一种重要的运维技术,通过在客户端和实际服务器之间设置一个代理服务器,实现请求的转发和响应的返回。Nginx是一个常用的反向代理服务器,它通过高效的请求处理和灵活的配置,实现了负载均衡、安全防护、缓存加速等多种功能,广泛应用于各种复杂的网络环境中。

实验(准备三台虚拟机)另外两台安装Apache服务,并且是redhat9版本

nginx:172.25.253.153/24
httpd1: 172.25.253.20/24
httpd2: 172.25.253.30/24
在这里插入图片描述
因为172.25.253.30的默认监听端口是80,所以需要改一下,

172.25.253.30操作:
在这里插入图片描述
把监听端口改成8080或者添加8080

在这里插入图片描述

测试:

在这里插入图片描述
在这里插入图片描述

实现 Nginx 四层负载均衡

Nginx在1.9.0版本开始支持tcp模式的负载均衡,在1.9.13版本开始支持udp协议的负载,udp主要用于
DNS的域名解析,其配置方式和指令和http 代理类似,其基于ngx_stream_proxy_module模块实现tcp
负载,另外基于模块ngx_stream_upstream_module实现后端服务器分组转发、权重分配、状态监测、
调度算法等高级功能。
如果编译安装,需要指定 --with-stream 选项才能支持ngx_stream_proxy_module模块

tcp负载均衡配置参数

在这里插入图片描述
负载均衡实例: MySQL
在这里插入图片描述

php源码编译

重置nginx

在这里插入图片描述
然后如果后面nginx服务不行,记得 make && make install 进行编译安装
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

nginx和php的整合

安装memcache模块
在这里插入图片描述
我之前已经dnf 了memcache

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

优化: 两个php测试

在这里插入图片描述

在这里插入图片描述
如果失败或者web页面失败,先把原来的nginx进程杀死,并清空缓存,再重启服务测试

理论总结

高性能Web服务器(Nginx)的概念

Nginx是一个高性能的Web服务器和反向代理服务器,由Igor Sysoev开发,最初用于处理高并发请求。Nginx以其高效、稳定、轻量级的特点,广泛应用于各种高性能Web服务场景。

Nginx的工作原理

Nginx的工作原理主要基于以下几点:

  1. 事件驱动模型:Nginx采用异步非阻塞的事件驱动模型,可以同时处理大量的并发连接。每个连接作为一个事件,由事件循环机制统一管理。
  2. 高效的I/O处理:Nginx利用epoll(Linux)、kqueue(FreeBSD)等高效的I/O多路复用技术,实现高效的I/O处理。
  3. 模块化设计:Nginx采用模块化设计,可以通过加载不同的模块来扩展其功能。常见的模块包括HTTP模块、邮件模块、流媒体模块等。
  4. 灵活的配置:Nginx支持灵活的配置,可以通过配置文件实现复杂的请求处理逻辑,如URL重写、反向代理、负载均衡等。

Nginx的工作模式

Nginx的工作模式主要包括以下几种:

  1. Master-Worker模式:Nginx有一个主进程(master process)和多个工作进程(worker processes)。主进程负责接收客户端请求,并将请求分发到工作进程。工作进程负责处理具体的请求。
  2. 负载均衡模式:Nginx可以作为负载均衡器,将请求分发到多个后端服务器。支持多种负载均衡算法,如轮询、最少连接数、IP哈希等。
  3. 反向代理模式:Nginx可以作为反向代理服务器,接收客户端请求,选择合适的后端服务器处理请求,并将响应返回给客户端。
  4. 缓存加速模式:Nginx可以作为缓存服务器,缓存后端服务器的响应结果,减少重复请求,提高响应速度。

为什么要使用Nginx

  1. 高性能:Nginx采用异步非阻塞的事件驱动模型,可以同时处理大量的并发连接,具有很高的性能。
  2. 稳定性:Nginx经过多年的开发和测试,具有很高的稳定性。即使在高并发场景下,也能保持稳定的运行。
  3. 轻量级:Nginx的内存占用和CPU消耗都很低,是一个轻量级的Web服务器。
  4. 灵活性:Nginx支持灵活的配置和模块化设计,可以通过配置文件和模块实现复杂的功能。
  5. 社区支持:Nginx有一个活跃的开源社区,提供了大量的文档、教程和插件,方便用户学习和使用。

总结

Nginx是一个高性能、稳定、轻量级的Web服务器,通过事件驱动模型、高效的I/O处理、模块化设计和灵活的配置,实现了高性能和多功能。广泛应用于各种高性能Web服务场景,如负载均衡、反向代理、缓存加速等。使用Nginx可以有效提高Web服务的性能和可靠性,降低系统资源消耗。总结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值