深入探讨 Nginx:安装、配置及优化指南

一、Nginx 概述及编译安装

1、概述

Nginx是一个高性能的开源HTTP和反向代理服务器,同时也是一个IMAP/POP3邮件代理服务器。它最初由Igor Sysoev于2002年开发,并于2004年首次发布。Nginx以其高并发性、低资源消耗和灵活的配置能力而受到广泛关注,适用于大流量网站和高并发处理场景。

Nginx的主要特点:

  1. 高性能:Nginx的事件驱动架构使其能够处理大量并发连接,而不需要为每个连接创建一个新的线程或进程。

  2. 反向代理:Nginx可以作为反向代理服务器,将客户端请求分发到后端服务器,提高系统的可扩展性和安全性。

  3. 负载均衡:Nginx能够将请求分配到多个后端服务器进行负载均衡,从而优化资源使用和响应时间。

  4. 静态内容服务:Nginx非常擅长提供静态文件服务,如图像、CSS和JavaScript文件,能以极高的性能响应静态内容请求。

  5. 动态内容代理:虽然Nginx本身不处理动态内容,但它可以与FastCGI、uWSGI等模块配合,用于处理PHP、Python等动态请求。

  6. 支持多种协议:不仅支持HTTP和HTTPS,还支持SMTP、POP3和IMAP等邮件协议。

  7. 模块化架构:Nginx具有良好的模块系统,用户可以根据需要添加不同的功能模块,如gzip压缩、SSL支持、HTTP/2等。

  8. 简单的配置文件:Nginx的配置文件结构清晰、易于理解,用户可以方便地设置服务器行为和相关参数。

  9. 高可用性和可扩展性:Nginx可以与其他软件(如Keepalived、HAProxy等)结合,实现高可用性和横向扩展

2、Nginx 进程结构

2.1、web请求处理机制

  • 多进程方式

服务器每接收到一个客户端请求就有服务器的主进程生成一个子进程响应客户端,直 到用户关闭连接,这样的优势是处理速度快,子进程之间相互独立,但是如果访问过大会导致服务 器资源耗尽而无法提供请求

  • 多线程方式

与多进程方式类似,但是每收到一个客户端请求会有服务进程派生出一个线程和此客 户端进行交互,一个线程的开销远远小于一个进程,因此多线程方式在很大程度减轻了web服务器 对系统资源的要求,但是多线程也有自己的缺点,即当多个线程位于同一个进程内工作的时候,可 以相互访问同样的内存地址空间,所以他们相互影响,一旦主进程挂掉则所有子线程都不能工作 了,IIS服务器使用了多线程的方式,需要间隔一段时间就重启一次才能稳定。

Nginx是多进程组织模型,而且是一个由Master主进程和Worker工作进程组成。主进程主要负责配置管理、进程监控和信号处理,并不会直接处理网络请求。工作进程实际执行处理请求的任务,具备高并发和高效率,能够独立工作,为用户提供响应。

2.2、主进程(Master Process)

  • 管理进程:主进程负责管理工作进程的生命周期,包括启动、停止和重启工作进程。

  • 配置管理:在启动时,主进程会读取Nginx的配置文件,并根据配置生成和管理工作进程。

  • 信号处理:主进程接收来自操作系统的信号(如停止、重启、重新加载配置等),并将这些信号转发给相应的工作进程。

  • 负载均衡和监控:虽然主进程不直接处理客户端请求,但它可以监控工作进程的状态并在必要时对其进行调整。

  • 中止工作进程:在进行平滑重启或重新加载配置时,主进程会先启动新的工作进程,然后再把现有的工作进程优雅地终止,以保证零停机。

2.3、工作进程(Worker Process)

  • 处理请求:工作进程负责实际处理客户端的请求,包括接收请求、发送响应以及完成数据的处理。

  • 并发处理:每个工作进程可以处理多个请求,Nginx的事件驱动架构使得它具有非常高的并发处理能力。

  • 利用共享内存:工作进程可以通过共享内存进行数据共享,例如会话信息、缓存等,有助于提升性能。

  • 事件驱动:工作进程使用非阻塞I/O和异步事件处理机制,有效提高了处理效率和响应速度。

  • 独立运行:工作进程在主进程的控制下独立运行,可以以多进程方式处理请求,提高资源的利用率和稳定性

3、Nginx 编译安装

tar zxf nginx-1.24.0.tar.gz

dnf install gcc pcre-devel zlib-devel openssl-devel -y

关闭编译时的调试信息(关闭debug功能)

关闭 Nginx 的调试功能可以帮助提高应用程序的稳定性和安全性,同时减少系统资源的消耗,因此在生产环境中通常建议将其关闭。

vim auto/cc/gcc

./configure:这是运行 Nginx 配置脚本的命令,它会检查你的系统环境并生成 Makefile 文件,帮助你编译 Nginx。

./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-stream --with-stream_ssl_module --with-stream_realip_module

make编译源代码并生成可执行文件

make install将编译好的程序、库和其他必要文件安装到系统的标准目录中

make && make install

为 Nginx 创建一个专用的、没有登录权限的用户

useradd -s /sbin/nologin -M nginx

启动 Nginx

/usr/local/nginx/sbin/nginx

把nginx软件的命令执行路径添加到环境变量中

vim ~/.bash_profile

更新环境变量和配置

source ~/.bash_profile

:怎么删编译的文件

rm -fr /usr/local/nginx/make clean

4、平滑升级及版本回滚

4.1、版本升级

​wget https://nginx.org/download/nginx-1.26.2.tar.gz
tar zxf nginx-1.26.2.tar.gz
tar zxf echo-nginx-module-0.63.tar.gz

./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --add-module=/root/echo-nginx-module-0.63 --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-stream --with-stream_ssl_module --with-stream_realip_module

编译

将旧版本复制一份

将新版本复制到/usr/local/nginx/sbin

\cp -f /root/nginx-1.26.2/objs/nginx /usr/local/nginx/sbin

此时旧版本还在运行,所以无法开启新版本

启动新版本

kill -USR2 38270

这时nginx还是旧版本

回收旧版本

kill -WINCH 38270

查看

4.2、版本回滚

重启旧版本

kill -HUP 38270

回收新版本

kill -WITCH 45011

复制旧版本到nginx

kill新版本

kill -9 45011

查看

二、 Nginx 核心配置

1、常用参数

nginx -s stop   关闭nginx 进程

nginx -v    查看 Nginx 版本

nginx -V    显示版本和编译参数

nginx -t     测试配置文件是否正确

nginx -T    查看并打印

nginx -s reload 不关闭进程,重新加载配置

2、启动脚本编写

vim /lib/systemd/system/nginx.service
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true[Install]
WantedBy=multi-user.target

systemctl daemon-reload
systemctl enable --now nginx

3、全局配置

vim /usr/local/nginx/conf/nginx.conf

vim /usr/local/nginx/conf/nginx.conf

修改pam(可插拔认证模块)限制

vim /etc/security/limits.conf

sudo -u nginx ulimit -a

vim /usr/local/nginx/conf/nginx.conf

总文件里面加载子配置文件的路径

vim /usr/local/nginx/conf.d/vhost.conf


 

mkdir -p /data/web/html
echo www.hao.org > /data/web/html/index.html

测试:

vim /usr/local/nginx/conf.d/vhost.conf

测试:

vim /usr/local/nginx/conf.d/vhost.conf

测试:

4、Nginx 账户认证功能

htpasswd:命令用于管理基本认证的用户密码文件

-m:使用 MD5 加密算法存储密码

htpasswd -m /usr/local/nginx/.htpasswd hao
cat /usr/local/nginx/.htpasswd

mkdir /data/web/hao
echo hao > /data/web/hao/index.html
vim /usr/local/nginx/conf.d/vhost.conf

测试:

5、自定义错误页面

vim /usr/local/nginx/conf.d/vhost.conf

mkdir -p /data/web/errorpage
echo erro page >/data/web/errorpage/40x.html
nginx -t
nginx -s reload

6、自定义日志

vim /usr/local/nginx/conf.d/vhost.conf

mkdir /var/log/hao.org
nginx -s reload
curl www.hao.org
cat /var/log/hao.org/access.log

curl www.hao.org/haha
cat /var/log/hao.org/error.log

7、检测文件是否存在

vim /usr/local/nginx/conf.d/vhost.conf

mkdir /data/web/html/error
echo erroe default > /data/web/html/error/default.html

测试;

curl www.hao.org

8、长连接

vim /usr/local/nginx/conf/nginx.conf

开启长连接后,返回客户端的会话保持时间为60s,单次长连接累计请求达到指定次数请求或65秒就会被断开,第二个数字60为发送给客户端应答报文头部中显示的超时时间设置为60s:如不设置客户端将不显示超时时间。

请求改为两次

yum install telnet
vim /usr/local/nginx/conf/nginx.conf

测试:

telnet www.hao.org 80

GET / HTTP/1.1

HOST:www.hao.org

9、作为下载服务器配置

mkdir /data/web/download

dd:用于低级别的数据复制和转换

dd if=/dev/zero of=/data/web/download/haofile bs=1M count=100

vim /usr/local/nginx/conf.d/vhost.conf

nginx -s reload

测试

三、Nginx 高级配置

1、Nginx 状态页

状态页用于输出nginx的基本状态信息

vim /usr/local/nginx/conf.d/status.conf

测试:

status.hao.org/status

上面三个数字分别对应accepts,handled,requests三个值

2、Nginx 压缩功能

Nginx支持对指定类型的文件进行压缩然后再传输给客户端

vim /usr/local/nginx/conf/nginx.conf

echo hello guangyu > /data/web/html/small.html
cat /usr/local/nginx/logs/access.log > /data/web/html/big.html

测试:

curl --head --compressed 172.25.254.111/small.html

3、nginx的内置变量

vim /usr/local/nginx/conf.d/vars.conf

curl -b "key1=hao,key2=hao1" -u hao:hao var.hao.org/var?name=hao&&id=6666

4、nginx自定义变量

vim /usr/local/nginx/conf.d/vars.conf

测试:

curl var.hao.org/var

四、Nginx Rewrite 相关功能

1、ngx_http_rewrite_module 模块指令

1.1、if判定

vim vars.conf

测试:

curl var.hao.org/test2/index.html

1.2、break

用于中断当前相同作用域(location)中的其他Nginx配置,与该指令处于同一作用域的Nginx配置中,位于它前面的配置生效 位于后面的 ngx_http_rewrite_module 模块中指令就不再执行 Nginx服务器在根据配置处理请求的过程中遇到该指令的时候,回到上一层作用域继续向下读取配置, 该指令可以在server块和locationif块中使用

vim /usr/local/nginx/conf.d/vars.conf

curl var.hao.org/break

添加break

vim /usr/local/nginx/conf.d/vars.conf

测试:

curl var.hao.org/break

设定浏览器

vim /usr/local/nginx/conf.d/vars.conf

测试:

curl -A "firefox" var.hao.org/break

curl var.hao.org/break

1.3、return

return用于完成对请求的处理,并直接向客户端返回响应状态码,比如:可以指定重定向URL(对于特殊重 定向状态码,301/302等) 或者是指定提示文本内容(对于特殊状态码403/500等),处于此指令后的所有配 置都将不被执行,return可以在server、if 和 location块进行配置

vim /usr/local/nginx/conf.d/vars.conf

测试:

curl -I var.hao.org/return

mkdir /data/web/html/return

curl -I var.hao.org/return

2、rewrite 指令

通过正则表达式的匹配来改变URI,可以同时存在一个或多个指令,按照顺序依次对URI进行匹配, rewrite主要是针对用户请求的URL或者是URI做具体处理

2.1、rewirte 临时和永久

vim /usr/local/nginx/conf.d/vars.conf

mkdir /data/web/var
echo var page > /data/web/var/index.html

永久重定向301

vim /usr/local/nginx/conf.d/vars.conf

测试:

临时重定向301

vim /usr/local/nginx/conf.d/vars.conf

测试:

curl -I var.hao.org

2.2、rewrite 案例:break 和last

mkdir /data/web/html/{test1,test2,break,last} -p
echo test1 > /data/web/html/test1/index.html
echo test2 > /data/web/html/test2/index.html
echo last > /data/web/html/last/index.html
echo break > /data/web/html/break/index.html
vim /usr/local/nginx/conf.d/vars.conf

测试;

curl var.hao.org/break/

curl var.hao.org/last/

curl var.hao.org/test1/

curl var.hao.org/test2/

添加break和last

测试:

curl var.hao.org/break/index.html

curl var.hao.org/last/index.html

3、Nginx 防盗链

3.1、全站加密

cd /usr/local/nginx/
mkdir certs
openssl req -newkey rsa:2048 -nodes -sha256 -keyout /usr/local/nginx/certs/hao.org.key \ -x509 -days 365 -out /usr/local/nginx/certs/hao.org.crt
vim vhosts.conf

测试:

vim vhosts.conf

测试:www.hao.org/a

3.2、实现盗链

vim /usr/local/nginx/conf.d/vhosts.conf

www.hao.org/images/6.4.jpg

另一台中模拟盗链网页

yum install httpd -y

vim /var/www/html/index.html

systemctl enable --now httpd

测试:

172.25.254.10

3.3、实现防盗链

vim /usr/local/nginx/conf.d/vhosts.conf

测试:

172.25.254.10

Nginx 反向代理功能

1、反向代理

反向代理:reverse proxy,指的是代理外网用户的请求到内部的指定的服务器,并将数据返回给用户的 一种方式,这是用的比较多的一种方式。

Nginx 除了可以在企业提供高性能的web服务之外,另外还可以将 nginx 本身不具备的请求通过某种预 定义的协议转发至其它服务器处理,不同的协议就是Nginx服务器与其他服务器进行通信的一种规范,主要在不同的场景使用以下模块实现不同的功能

  • ngx_http_proxy_module 将客户端的请求以http协议转发至指定服务器进行处理
  • ngx_http_upstream_module 用于定义为proxy_pass,fastcgi_pass,uwsgi_pass #等指令引用的后端服务器分组
  • ngx_stream_proxy_module 将客户端的请求以tcp协议转发至指定服务器处理
  • ngx_http_fastcgi_module 将客户端对php的请求以fastcgi协议转发至指定服务器助理
  • ngx_http_uwsgi_module 将客户端对Python的请求以uwsgi协议转发至指定服务器处理

2、反向代理负载均衡

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模块

3、FastCGI

FastCGI是用来提高CGI性能的,FastCGI每次处理完请求之后不会关闭掉进程,而是保留这个进程,使这个进程可以处理多个请 求。这样的话每个请求都不用再重新创建一个进程了,大大提升了处理效率。

3.1 、Nginx与php-fpm在同一服务器

nginx编译
rm -rf /usr/local/nginx/
make clean
tar zxf memc-nginx-module-0.20.tar.gz
tar zxf srcache-nginx-module-0.33.tar.gz
tar zxf php-8.3.9.tar.gz
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --add-module=/root/echo-nginx-module-0.63 --add-module=/root/memc-nginx-module-0.20 --add-module=/root/srcache-nginx-module-0.33 --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-stream --with-stream_ssl_module --with-stream_realip_module

yum install -y bzip2 systemd-devel libxml2-devel sqlite-devel libpng-devel libcurl-devel

dnf install oniguruma-devel-6.9.6-1.el9.5.x86_64.rpm

php编译
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --with-curl --with-iconv --with-mhash --with-zlib --with-openssl --enable-mysqlnd --with-mysqli --with-pdo-mysql --disable-debug --enable-sockets --enable-soap --enable-xml --enable-ftp --enable-gd --enable-exif --enable-mbstring --enable-bcmath --with-fpm-systemd

make && make install

cd /usr/local/php/etc/

cp -p php-fpm.conf.default php-fpm.conf
php相关配置优化
vim php-fpm.conf

cd php-fpm.d/

cp www.conf.default www.conf

生成主配置文件

cd /root/php-8.3.9/
cp php.ini-production /usr/local/php/etc/php.ini
cd /usr/local/php/etc/
vim php.ini

cd /root/php-8.3.9/sapi/fpm/
cp php-fpm.service /lib/systemd/system
vim php-fpm.service

Nginx配置
mkdir /usr/local/nginx/conf.d

总文件里面加载子配置文件的路径

vim /usr/local/nginx/conf/nginx.conf
vim /usr/local/nginx/conf.d/php.conf

访问验证php测试页面

php.hao.org/index.php

3.2、php的动态扩展模块(php的缓存模块)

安装memcache模块
tar zxf memcache-8.2.tgz
yum install autoconf

phpize 是一个 PHP 命令行工具,用于准备 PHP 扩展的编译环境

phpize

./configure && make && make install

复制测试文件到nginx发布目录中
ls /usr/local/php/lib/php/extensions/no-debug-non-zts-20230831/

cp example.php memcache.php /data/web/php/

vim /data/web/php/memcache.php

配置php加载memcache模块

vim /usr/local/php/etc/php.ini

systemctl reload php-fpm.service

部署memcached
yum install memcached -y

systemctl enable --now memcached.service
netstat -antlupe | grep memcache

cat /etc/sysconfig/memcached

测试

php.hao.org/example.php

php.hao.org/memcache.php

不断刷新页面

性能对比
ab -n500 -c10 http://php.hao.org/index.php

失败51次

​
ab -n500 -c10 http://php.hao.org/example.php

0次失败

3.3、php高速缓存

需两个模块 srcache-nginx-module-0.33 memc-nginx-module-0.20

vim /usr/local/nginx/conf.d/php.conf

​nginx -s reload
ab -n500 -c10 http://php.hao.org/index.php

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[鹏城杯 2022]简单的php

题目源代码 <?phpshow_source(__FILE__); $code $_GET[code]; if(strlen($code) > 80 or preg_match(/[A-Za-z0-9]|\|"||\ |,|\.|-|\||\/|\\|<|>|\$|\?|\^|&|\|/is,$code)){die( Hello); }else if(; preg_replace(/[^\s\(\)]?\((?R)?\)/, , $code…

网安新声 | 从微软“狂躁许可”漏洞事件看安全新挑战与应对策略

网安加社区【网安新声】栏目&#xff0c;汇聚网络安全领域的权威专家与资深学者&#xff0c;紧跟当下热点安全事件、剖析前沿技术动态及政策导向&#xff0c;以专业视野和前瞻洞察&#xff0c;引领行业共同探讨并应对新挑战的策略与可行路径。 近期&#xff0c;微软披露了一个最…

JSON, YAML, XML, CSV交互可视化

1、jsoncrack https://jsoncrack.com/editor

双亲委派机制的优势与劣势

三次双亲委派机制的破坏

反向代理:定义与核心作用

反向代理&#xff1a;定义与核心作用 一、反向代理的定义二、反向代理的核心作用 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 反向代理&#xff0c;作为网络架构中的重要组件&#xff0c;扮演着关键角色。本文将简洁介绍反向代理的定义及…

整体思想以及取模

前言&#xff1a;一开始由于失误&#xff0c;误以为分数相加取模不能&#xff0c;但是其实是可以取模的 这个题目如果按照一般方法&#xff0c;到达每个节点再进行概率统计&#xff0c;但是不知道为什么只过了百分之十五的测试集 题目地址 附上没过关的代码 #include<bits…

【区块链+商贸零售】预付宝:商家数字经济服务平台 | FISCO BCOS应用案例

预付宝商家数字经济服务平台是人民链在金融领域落地的 一个区块链应用&#xff0c;致力于营造诚信消费环境&#xff0c;专治诸如健 身房老板卷款跑路、充值后餐馆倒闭钱拿不回来等令消费 者头疼不已的行业乱象&#xff0c;让消费者可以放心地预付费。 平台应用FISCO BCOS区块链…

设计模式学习[3]---单一职责原则+开放封闭原则

文章目录 前言1. 单一职责1.1 原理阐述1.2 处理方式 2. 开放-封闭原则2.1 原理阐释2.2 举例说明 总结 前言 小项目写多了&#xff0c;比如一些什么管理系统之类的&#xff0c;在接触大型项目的时候往往会将之前的一些面向过程的写法代入。 比如UI以及逻辑处理都放在一个类里面…

Flutter【01】状态管理

声明式编程 Flutter 应用是 声明式 的&#xff0c;这也就意味着 Flutter 构建的用户界面就是应用的当前状态。 当你的 Flutter 应用的状态发生改变时&#xff08;例如&#xff0c;用户在设置界面中点击了一个开关选项&#xff09;你改变了状态&#xff0c;这将会触发用户界面…

25届科大讯飞飞星计划 AI研究算法工程师 面经

目录 一面/技术面 2024/08/15 &#x1f4cb; 总结&#xff1a; 本来应该是在7月底面试的&#xff0c;但因为有事就拖到了现在&#xff0c;或许是飞星计划里最晚面试的一批&#xff1f;面试官很和蔼&#xff0c;问的问题不算难&#xff0c;总体体验还算不错。 一面/技术面 2024/…

洛谷B3981题解

题目描述 &#xff08;你不需要看懂这张图片&#xff1b;但如果你看懂了&#xff0c;会觉得它很有趣。&#xff09; JavaScript 是一种功能强大且灵活的编程语言&#xff0c;也是现代 Web 开发的三大支柱之一 (另外两个是 HTML 和 CSS)。灵活的 JavaScript 包含“自动类型转换…

Python 数据分析之Numpy学习(一)

Python 数据分析之Numpy学习&#xff08;一&#xff09; 一、Numpy的引入 1.1 矩阵/向量的按位运算 需求&#xff1a;矩阵的按位相加 [0,1,4] [0,1,8] [0,2,12] 1.1.1 利用python实现矩阵/向量的按位运算 # 1.通过列表实现 list1 [0, 1, 4] list2 [0, 1, 8]# 列表使用…

【Linux网络】select函数

欢迎来到 破晓的历程的 博客 ⛺️不负时光&#xff0c;不负己✈️ 文章目录 select函数介绍select函数参数介绍select函数返回值select的工作流程TCP服务器【多路复用版】 select函数介绍 在Linux网络编程中&#xff0c;select 函数是一种非常有用的IO多路复用技术&#xff0…

基于Java和GeoTools的Shapefile矢量数据缩略图生成实践

目录 前言 一、关于GeoTools的图片生成 1、关于GtRenderer 2、关于 图像生成架构 3、流式计算绘制 二、全球空间预览生成实战 1、pom.xml中关于图像生成依赖 2、样式设置及地图资源绑定 3、图片生成绘制 4、图片生成测试 三、成果验证 1、全球范围生成 2、我国的范…

redis随笔记

缓存穿透。key不存在。恶意攻击、代码问题。加布隆过滤器&#xff0c;或者为空就返回。 缓存失效&#xff08;击穿&#xff09;。key刚好过期。缓存时间随机数。 缓存雪崩。缓存层宕机&#xff0c;一下子袭击数据库。缓存高可用、限流熔断、提前演练。 布隆过滤器就是一个key…

Python版《超级玛丽+源码》-Python制作超级玛丽游戏

小时候最喜欢玩的小游戏就是超级玛丽了&#xff0c;有刺激有又技巧&#xff0c;通关真的很难&#xff0c;救下小公主还被抓走了&#xff0c;唉&#xff0c;心累&#xff0c;最后还是硬着头皮继续闯&#xff0c;终于要通关了&#xff0c;之后再玩还是没有那么容易&#xff0c;哈…

从并发20到并发120之laravel性能优化

调优成果 遇到问题 单台服务并发20&#xff0c;平均响应时间1124ms&#xff0c;通过htop观察&#xff0c;发现cpu占用率达到100%&#xff08;包括sleep的进程&#xff09;&#xff0c;内存几乎没怎么用。 调优后 单机最大吞吐量达到120 响应时长不超过1000ms 硬件信息 …

EfficientFormer 系列算法

1. EfficientFormer V1 模型 论文地址&#xff1a;https://proceedings.neurips.cc/paper_files/paper/2022/file/5452ad8ee6ea6e7dc41db1cbd31ba0b8-Paper-Conference.pdf EfficientFormer V1 基于 ViT 的模型中使用的网络架构和具体的算子&#xff0c;找到端侧低效的原因。然…

高性能web服务器nginx

目录 nginx简介 服务端 I/O 流程 Nginx 进程结构 Nginx启动流程 nginx的源码编译下载 nginx命令常见参数 nginx的配置文件详解 全局配置优化 nginx的平滑升级和回滚 nginx目录匹配优先级测试&#xff08;因为只支持访问文件&#xff0c;所有不比对匹配目录优先级&…