Nginx基础之完全私货分享

图文结合告诉你,Nginx 为什么快到停不下来? Nginx 的进程模型 Nginx 服务器,正常运行过程中: 多进程:一个 Master 进程、多个 Worker 进程 Master 进程:管理 Worker 进程 对外接口:接收外部的操作(信号) 对内转发:根据外部的操作的不同,通过信号管理 Worker 监控:监控 worker 进程的运行状态,worker 进程异常终止后,自动重启 worker 进程 Worker... 阅读详情

NGINX完全私货分享

在这里插入图片描述

1.1 你有梦想吗?

​ 几十年如一梦,回首过往,任何事物都是由微不足道开始。我们仰望金字塔的顶端,有多少人会注意到塔底的石砖。值得你去追求的梦想,不应该是空中楼阁,而是从地基开始一层一层,一步一步逐渐累积,逐渐完善的建筑。我爱各种风格的建筑,但不会喜欢一遇风雨就支离破碎的垃圾。

1.2 Nginx的前辈:Apache

​ 我假定你是有一定的基础,对于web的热爱使你主动的了解了一些基础知识。
​ 对于Apache,我们应当去了解他的底层模型,并承上启下讲述NGINX,为何优秀。

1.2.1 Apache 的 prefork模式:

​ 你可以称为预派生模式,该模式有一个主控制进程,主进程生成多个子进程,使用select模型,最大并发为1024,每个子进程有一个独立的线程响应用户请求,相对其他模式而言比较占用内存,但比较稳定,可以设置最大和最小进程数,是一种经典的模式,也是最稳定的模式。perfork模式适合访问量不是很大的场景。

优点:

  • 稳定

缺点:

  • 相对较慢
  • 占用资源
  • 1024个进程不适用与高并发场景

在这里插入图片描述

该模式最多可有1024个进程,在X64架构中最多有2048个

1.2.2 Apache 的 woker 模式:

​ 该模式是一种多进程和多线程混合的模式(即:一个进程可以生成多个线程来响应请求)。有一个主进程,主进程生成多个子进程,每个子进程又会生成多个线程来处理请求,当一个子进程的线程不够用时,又会再启动一个新的子进程,然后在进程里通过线程处理请求。相比于perfork模式,该模式可以承受更高的并发。

优点:

  • 相比perfork占用的内存较小
  • 可以同时处理更多请求

缺点:

  • 使用keepalived的长连接方式,导致线程会一直被占用,即使没有数据传输(空连接)也需要一直等待到超时才会释放。因此,在高并发的场景下仍然会导致无服务线程可用(当然,perfork肯定也有这种情况)

在这里插入图片描述

1.2.3 Apache 的 event 模式:

​ Apache中的“新模式” 2012年发布的Apache 2.4.X系列正式支持该模式。
​ 该模式属于事件驱动模型(epoll),他和work模式很像,同样是一个进程响应多个请求,但是最大的区别在于它通过一个监听线程解决了work模式的keepalived长连接导致线程被占用导致资源浪费的问题。
​ 在event的模式中,会有专门的一个线程来管理keepalive类型的线程,当有请求来时,通过监听线程分配给空闲的线程,当某个线程处理完用户请求后,该会话会保持并交于监听线程管理,自己去处理新的请求,并不负责保持会话。

优点:

  • 单个线程能够相应更多的请求
  • 占据更少内存(发现内存占用和线程的关系了吗)
  • 高并发下表现更加优秀
  • 有一个专门的监控线程来管理keepalived型的线程
  • 当有真实的请求过来的时候,监控线程将请求传递给服务线程,服务线程执行完毕后,控制其释放

缺点:

  • 没有线程安全控制(监控线程挂掉了)

在这里插入图片描述

1.3 NGINX 一款高性能的web服务端:

Ninx是由1994年毕业于俄罗斯国立莫斯科鲍曼科技大学的同学为俄罗斯rambler.ru公司开发的,开发工作最早从
2002年开始,第一次公开发布时间是2004年10月4日,版本号是0.1.0,官网地址 www.nginx.org
Nginx历经十几年的迭代更新(https://nginx.org/en/CHANGES), 目前功能已经非常完善且运行稳定,另外
Nginx的版本分为开发版、稳定版和过期版,nginx以功能丰富著称,它即可以作为http服务器,也可以作为反向代
理服务器或者邮件服务器,能够快速的响应静态网页的请求,支持FastCGI/SSL/Virtual Host/URL
Rwrite/Gzip/HTTP Basic Auth/http或者TCP的负载均衡(1.9版本以上且开启stream模块)等功能,并且支持第三方
的功能扩展。

天猫 淘宝 小米 163 京东新浪等一线互联网公司都在用Nginx或者进行二次开发

NGINX的工作模式简介

httpd MPM(Multi-Processing Module,多进程处理模块)模式:
prefork:进程模型,两级结构,主进程master负责生成子进程,每个子进程负责响应一个请求
worker:线程模型,三级结构,主进程master负责生成子进程,每个子进程负责生成多个线程,每个线程响应
一个请求
event:线程模型,三级结构,主进程master负责生成子进程,每个子进程生成多个线程,每个线程响应一个请
求,但是增加了一个监听线程,用于解决在设置了keep-alived场景下线程的空等待问题。

################################################

Nginx(Master+Worker)模式:
主进程
工作进程 #直接处理客户的请求

################################################

线程验证方式:
# cat /proc/PID/status
# pstree -p PID

1.3.1 究竟怎样才算是高性能?

​ 加载快速的网站和加载缓慢的网站

1.3.2 同样一个网站,影响用户加载速率的原因有哪些?

客户端方面:

  • 客户端硬件问题
  • 客户端网络速率
  • 客户端与服务端距离

服务端方面:

  • 服务端网络速率
  • 服务端硬件配置
  • 服务端架构设计
  • 服务端应用程序工作模式
  • 服务端并发数量
  • 服务端相应文件大小及数量
  • 服务端I/O压力

1.3.3 讲讲服务端I/O:

​ I/O在计算机中指Input/Output, IOPS (Input/Output Per Second)即每秒的输入输出量(或读写次数),是衡量磁盘性能的主要指标之一。IOPS是指单位时间内系统能处理的I/O请求数量,一般以每秒处理的I/O请求数量为单位,I/O请求通常为读或写数据操作请求。

​ 一次完整的I/O是用户空间的进程数据与内核空间的内核数据的报文的完整交换,但是由于内核空间与用户空间是严格隔离的,所以其数据交换过程中不能由用户空间的进程直接调用内核空间的内存数据,而是需要经历一次从内核空间中的内存数据copy到用户空间的进程内存当中,所以简单说I/O就是把数据从内核空间中的内存数据复制到用户空间中进程的内存当中。

用户空间想拿到数据,必须先经过内核调用读取磁盘内容至内核空间,再由内核空间将数据拷贝至用户空间,期间经历了两次拷贝。

1.3.4 系统也有多种I/O模型:

​ 这一节是重点,因为系统并非只有一种I/O模型,因此当说起I/O模型时,你最好知道有哪几种。

同步 synchronous:

调用者等待被调用者返回消息后才能继续执行,如果被调用者不提供消息则为同步,同步需要调用者主动询问事情是否处理完成。

你在用茶壶烧水,在水烧开的过程中你别的事都不能做,只是不停的确认水烧开了没有,好好想想,如果有成千上万的水壶呢?

异步 asynchronous :

被调用者通过通知等回调机制主动的通知调用者自己的运行状态

你在用比较好的水壶烧水,这个水壶可以实时告诉你水温,水开了就会发出响声提醒你,好好想想,如果有成千上万的水壶呢?

阻塞 blocking :

指I/O操作需要彻底完成后才返回到用户空间,在此之前,调用者被挂起,干不了别的事。

你在专心致志等水烧开,再水烧开前,你做不了别的事,好好想想,如果有成千上万的水壶呢?

非阻塞 unblocking :

指I/O操作被调用后可以立即返回给用户一个操作值,无需等到I/O操作完成,最终的调用结果返回之前,调用者不会被挂起,可以抽身去做别的事

你在等水烧开之前,可以做别的事,好好想想,如果有成千上万的水壶呢?

1.4 以系统I/O模型为基础的网络I/O模型 :

阻塞型、非阻塞型、多路复用型、信号驱动型、异步

1.4.1 同步阻塞型I/O模型(blocking IO) :

阻塞IO模型是最简单的IO模型,用户线程在内核进行IO操作时候会被阻塞(什么也做不了)

用户线程通过系统调用read发起IO读操作,由用户空间转到内核空间。在此之后一直等待,直到内核的数据包到达,再由内核将数据拷贝到用户空间,这个过程也是一直等待(这里有两个等待的过程)

Apache的perfork就是这个模型,有印象吧?

在这里插入图片描述

注意看最右边的两个等待阶段

1.4.2 同步非阻塞I/O模型(noblocking IO) :

程序向内核发送请求IO之后一直会等待的内核相应,如果内核处理请求的IO操作不能立即返回IO结果,程序进程将不在等待,而是继续处理其他请求,但是仍然会每隔一段时间就来查看内核I/O是否完成。

在这里插入图片描述

注意查看反复确认是否完成的过程

1.4.3 IO多路复用型(IO multiplexing):

​ IO多路复用就是我们说的select,poll,epoll(之后会讲到),有些地方也称这种IO方式为事件驱动IO (event driven IO)。select/epoll的好处就在于单个进程就可以同时处理多个网络连接的IO。它的基本原理就是select,poll,epoll这个几个函数功能会不断的轮询所负责的所有socket连接,当某个socket有数据到达了,就通知用户进程。 当用户进程调用了select,那么整个进程会被block,而同时,kernel会“监视”所有select负责的socket,当任何一个socket中的数据准备好了,select就会返回。这个时候用户进程再调用read操作,将数据从kernel拷贝到用户进程。

有点绕?

记得上面智能水壶的故事吧?当水烧开了(数据准备好了),水壶会发出声响提醒你

这是什么意思呢?

这是怎么回事呢?

​ 首先,这是一种思路,目的是节约时间,节约什么时间?节约的是诸多进程不断请求数据的这么个时间。这种思路是,将由一个线程监控多个网络请求(我们后面将称为fd文件描述符,linux系统把所有网络请求以一个fd来标识),这样就可以只需要一个或几个线程就可以完成数据状态询问的操作,当有数据准备就绪之后再分配对应的线程去读取数据,这么做就可以节省出大量的线程资源出来,这个就是IO复用模型的思路。

在这里插入图片描述

请了一个人专门查看水壶是否烧开了,发现烧开了的就通知其他人取开水

1.4.4 信号驱动式IO(signal-driven IO):

那问题又来了,总是有新的问题是吧? IO多路复用解决的是由一个线程来监控多个fd,但是select是用轮询的方式来监控多个fd的。

啥叫轮询? 无数个fd从头到尾一列列个表,从第一个循环到最后一个,一个个看状态

这种方法有人也觉得比较浪费时间,因为这样一直反复轮询下去,总会有蛮多是未准备好的。能不能不要总是这样轮询,能不能当数据准备好了就主动通知我呢?

能!

这就是信号驱动式IO

该模式中,不用轮询的方式去监控数据就绪的状态,而是调用sigaction时候建立一个SIGIO信号处理程序,当内核数据准备好之后再通过SIGIO程序告知数据已准备就绪,此时再发起recvfrom读取数据请求。在该模式下,工作线程在发出信号监控后即可返回,不会阻塞,所以,一个工作线程也可以同时监视多个fd。

当然,recvfrom方法将数据从内核空间拷贝到用户空间还是需要时间等待的。

在这里插入图片描述

signal-driven I/O 用户进程可以通过sigaction系统调用注册一个信号处理程序,然后主程序可以继续向下执行,当有IO操作准备就绪时,由内核通知触发一个SIGIO信号处理程序执行,然后将用户进程所需要的数据从内核空间拷贝到用户空间 此模型的优势在于等待数据报到达期间进程不被阻塞。用户主程序可以继续执行,只要等待来自信号处理函数的通知。

1.4.5 异步(非阻塞)IO(asynchronous IO):

最后压轴的方法也来自一个想法:能不能仅发送一个请求高速内核我要读取什么数据,然后什么都不用管了,让内核自己去完成剩下的所有事情。让数据从内核拷贝到用户空间的这个时间也可以做别的事。

当然也有~

在异步IO中,进程只需要向内核发送一个read请求,内核收到请求后就会建立一个信号联系,当数据准备好之后,会主动将数据复制到用户空间,复制完后,内核会发起一个通知告诉进程。

该模式就成为异步IO模型。

在这里插入图片描述

程序进程向内核发送IO调用后,不用等待内核响应,可以继续接受其他请求,内核调用的IO如果不能立即返回,内核会继续处理其他事物,直到IO完成后将结果通知给内核,内核在将IO完成的结果返回给进程,期间进程可以接受新的请求,内核也可以处理新的事物,因此相互不影响,可以实现较大的同时并实现较高的IO
复用,因此异步非阻塞使用最多的一种通信方式。

1.4.6 五种IO对比

在这里插入图片描述

这五种 I/O 模型中,越往后,阻塞越少,注意红色的blocked,理论上效率也是最优前四种属于同步 I/O,因为其中真正的 I/O 操作(recvfrom)将阻塞进程/线程,只有异步 I/O 模型才与 POSIX 定义的异步 I/O 相匹配。

1.5 事件驱动模型:

#1、select:
POSIX所规定,目前几乎在所有的平台上支持,其良好跨平台支持也是它的一个优点,本质上是通过设置或者检查
存放fd标志位的数据结构来进行下一步处理
缺点
单个进程能够监视的文件描述符的数量存在最大限制,在Linux上一般为1024,可以通过修改宏定义
FD_SETSIZE,再重新编译内核实现,但是这样也会造成效率的降低
单个进程可监视的fd数量被限制,默认是1024,修改此值需要重新编译内核
对socket是线性扫描,即采用轮询的方法,效率较低
select 采取了内存拷贝方法来实现内核将 FD 消息通知给用户空间,这样一个用来存放大量fd的数据结构,这
样会使得用户空间和内核空间在传递该结构时复制开销大

#2、poll:
本质上和select没有区别,它将用户传入的数组拷贝到内核空间,然后查询每个fd对应的设备状态
其没有最大连接数的限制,原因是它是基于链表来存储的
大量的fd的数组被整体复制于用户态和内核地址空间之间,而不管这样的复制是不是有意义
poll特点是“水平触发”,如果报告了fd后,没有被处理,那么下次poll时会再次报告该fd
select是边缘触发即只通知一次

3、epoll:
在Linux 2.6内核中提出的select和poll的增强版本
支持水平触发LT和边缘触发ET,最大的特点在于边缘触发,它只告诉进程哪些fd刚刚变为就需态,并且只会通知
一次
使用“事件”的就绪通知方式,通过epoll_ctl注册fd,一旦该fd就绪,内核就会采用类似callback的回调机制
来激活该fd,epoll_wait便可以收到通知
优点:
没有最大并发连接的限制:能打开的FD的上限远大于1024(1G的内存能监听约10万个端口),具体查
看/proc/sys/fs/file-max,此值和系统内存大小相关
效率提升:非轮询的方式,不会随着FD数目的增加而效率下降;只有活跃可用的FD才会调用callback函数,即
epoll最大的优点就在于它只管理“活跃”的连接,而跟连接总数无关
内存拷贝,利用mmap(Memory Mapping)加速与内核空间的消息传递;即epoll使用mmap减少复制开销

4、rtsig:
不是一个常用事件驱动,最大队列1024,不是很常用

5、kqueue:
用于支持BSD系列平台的高校事件驱动模型,主要用在FreeBSD 4.1及以上版本、OpenBSD 2.0级以上版本,
NetBSD级以上版本及Mac OS X 平台上,该模型也是poll库的变种,因此和epoll没有本质上的区别,都是通
过避免轮训操作提供效率。

6、/dev/poll:
用于支持unix衍生平台的高效事件驱动模型,主要在Solaris 平台、HP/UX,该模型是sun公司在开发
Solaris系列平台的时候提出的用于完成事件驱动机制的方案,它使用了虚拟的/dev/poll设备,开发人员将要
见识的文件描述符加入这个设备,然后通过ioctl()调用来获取事件通知,因此运行在以上系列平台的时候请使
用/dev/poll事件驱动机制。

7、eventport:
该方案也是sun公司在开发Solaris的时候提出的事件驱动库,只是Solaris 10以上的版本,该驱动库看防止
内核崩溃等情况的发生。
8、Iocp:
Windows系统上的实现方式,对应第5种(异步I/O)模型。

1.5.1 常见的模型对比

在这里插入图片描述

说一下两个术语:

水平触发:只通知一次

边缘触发:通知多次

在这里插入图片描述

1.5.2 MMAP内存拷贝介绍(Memory Mapping):

mmap()系统调用使得进程之间通过映射同一个普通文件实现共享内存。普通文件被映射到进程地址空间后,进程可以向访问普通内存一样对文件进行访问。

简单来说就是多了一个快捷方式,在不同进程访问同一个文件时不需要一个个从内核空间中将文件拷贝到用户空间,而是通过这个快捷方式直接访问。

1.5.3 MMAP图示:

先看看传统方式:

在这里插入图片描述

MMAP方式:

0201031003220340.png

Nginx底层原理:一文解析Nginx为什么并发数可以达到3w Nginx 以其高性能,稳定性,丰富的功能,简单的配置和低资源消耗而闻名。本文从底层原理分析 Nginx 为什么这么快!Nginx 的进程模型Nginx 服务器,正常运行过程中:**多进程:**一个 Master 进程、多个 Worker 进程。**Master 进程:**管理 Worker 进程。对外接口:接收外部的操作(信号);对内转发:根据外部的操作的不同,通过信号管理 Worker;**监控:**监控 Worker 进程的运行状态,Worker 进程异常终止后,自动重启 Worker 进程。**Wo 阅读详情

相关推荐

Web安全实战:文件上传漏洞攻防解析与防御体系构建

文件上传是Web应用中的基础功能,其安全机制直接关系到服务器安全。从技术原理上看,攻击者通过绕过前端校验、篡改文件扩展名或MIME类型等方式,将恶意脚本上传至服务器可执行目录,从而获取控制权。这种漏洞的危害性极高,常与注入攻击、访问控制失效等风险并列。在工程实践中,防御需采用白名单校验、文件内容头检查、二次渲染等组合策略,并配合服务器配置,如设置上传目录不可执行。本文聚焦文件上传漏洞的常见绕过手法,如黑名单绕过、.htaccess攻击及图片马制作,并深入探讨了条件竞争等高级利用技术,为开发者构建纵深防御体系

weixin_30555125的博客 388

nginx 模块架构介绍

nginx架构介绍 Nginx 的代码是由一个 核心 和一系列的 模块 组成。 核心 核心的功能如下: 主要用于提供 WebServer 的基本功能; 实现 Web 和 Mail 反向代理的功能; 还用于启用网络协议; 创建必要的运行时环境以及确保不同的模块之间平滑地进行交互。 模块 大多跟协议相关的功能和应用特有的功能都是由 Nginx 的模块实现的。 这些功能模块大致可以分为:事件模块、阶段性...

王道长的技术博客 4034

AI辅助开发实战:Python实现本地微信聊天记录安全导出工具

数据提取与格式化导出是数据处理领域的基础需求,其核心原理在于从特定数据源中读取、解析并转换数据为通用格式。在技术实现上,通常涉及数据源连接、解密、结构化查询和格式渲染等环节。这类技术的价值在于打破数据孤岛,实现数据的可移植与二次利用,广泛应用于数据备份、迁移和分析等场景。本文聚焦于利用Python技术栈,结合SQLite数据库操作和Jinja2模板引擎,实现一个本地化的微信聊天记录导出工具。通过AI编程助手辅助,开发者可以高效完成从数据库解密、消息解析到多格式(HTML/CSV)导出的完整流程,为个人数据管

weixin_34056162的博客 397

Nginx

Linux网络I/O I/O是什么 所谓I/O,无非就是输入输出,磁盘I/O我们关注的较多,实质上,数据传输过程也可以说是一个I/O的过程。 I/O工作流程 I/O网络模型 同步/异步(关注的是消息通知机制) 同步: 调用者发指令给被调用者,被调用者需要获取一些资源后再返回给调用者,那么此时调用者需要等待被调用者返回消息,也就意味着调用者啥也干不了。 异步: 调用者发指令给被调用者,当被调用者获...

zwj1834787的博客 233

Bearer Token 深度解析:从 HTTP 认证演进到 JWT 实战与安全加固

HTTP 认证是 Web 安全与 API 设计的核心基础,其演进历程反映了对安全性与易用性的持续平衡。从早期的 Basic 和 Digest 认证,到如今广泛采用的 OAuth 2.0 框架,认证机制的核心目标始终是在确保身份与权限验证可靠的前提下,适应分布式、无状态的现代应用架构。Bearer Token 正是这一理念下的关键技术实现,它作为一种令牌(Token)传输方案,通过标准化的 HTTP 请求头传递,完美契合了 OAuth 2.0 的授权流程。其技术价值在于实现了认证与授权的解耦,使得资源服务器无

dianxiangong2403的博客 502

渗透测试武器库管理:构建高效漏洞利用与工具聚合平台

在网络安全领域,漏洞利用脚本(PoC/Exp)和渗透测试工具的高效管理是提升测试效率的关键。通过建立统一的漏洞利用库,可以实现对散落脚本的集中收纳、分类索引和快速检索,其核心原理在于元数据提取与结构化存储。这一技术方案的价值在于将安全工程师从繁琐的工具查找和环境配置中解放,使其更专注于攻击路径的思考与执行。在渗透测试、红队演练和漏洞挖掘等应用场景中,此类管理平台能够显著提升对特定目标(如Weblogic、Spring Boot等)的漏洞响应速度。例如,在应对类似'potato服务器渗透过程'或'w1r3s服

weixin_33724659的博客 439

Nginx学习之路(八)Nginx中的事件驱动过程详解-----以listenfd注册过程为例

Nginx的高效得益于它的事件驱动机制,整个事件驱动机制基本框架就是linux下的select,poll,epoll这几个IO多路复用模式,但是nginx绝不单单只是使用它们这么简单,今天以epoll模式为例,从nginx最开始的listenfd的监听的过程来说明nginx是怎么实现的事件驱动。首先需要说明的是,整个事件模型(event)是一个模块(module),module在nginx中是一个...

曾柯的知识笔记 1676

RESTful API设计本质:契约共建与工程实践指南

RESTful API 不是简单的 HTTP 接口开发,而是服务提供方与调用方之间基于资源、状态码和语义化协议建立的协作契约。其核心原理在于以名词建模资源、用标准 HTTP 方法表达意图、靠状态码传递机器可读的执行结果,并通过分页、版本、错误标准化等机制保障长期演进能力。这种设计显著提升系统可维护性、跨团队协作效率与客户端集成体验,广泛应用于微服务架构、SaaS 平台及开放平台建设中。本文深入剖析资源建模、状态码语义、游标分页、API 版本控制等关键实践,直击真实项目中的契约失灵痛点。

weixin_33728268的博客 420

今天,公司架构师跟我分享多年的私货 | 进阶之路必读书籍(附下载链接)

HTML与CSS 初级 《Head First HTML与CSS(第2版)》豆瓣评分:9.3 入门经典,初始获得信息的好途径。帮助读者逐步构件小的知识点,再结合一本整体的类别逻辑型的书,就可以把所有基础知识学清楚了。 中级 《CSS权威指南(第三版)》 豆瓣评分 8.5 本书适合自学过 CSS 的人但希望全面了解 CSS 的人阅读。由浅入深,全面易懂,不愧为权威指南。虽然内容有点儿老,但依然能够满足学习的需求。希望出版社能引进更新的版本。 《css禅意花园》豆瓣评分 8.4 这本书的作者是世...

imherer的博客 708

反序列化漏洞深度剖析:从原理到实战防御指南

序列化与反序列化是现代分布式系统、缓存和会话管理中实现对象持久化与传输的核心技术。其原理是将内存中的对象状态转换为可存储或传输的字节流或文本格式,并在需要时还原为对象。这项技术的价值在于简化了复杂数据的处理与交换,是构建高性能、可扩展应用的基石。然而,当反序列化过程信任了不可信的外部输入时,其强大的对象重建能力——包括自动调用特定方法(如Java的readObject、PHP的__wakeup)和利用反射机制——便可能被攻击者滥用,构造恶意序列化数据(即Gadget Chain),最终实现远程代码执行(RC

weixin_34082854的博客 395

国产大模型生产接入方法论:场景选型、成本建模与高可用治理

大模型作为新型AI基础设施,其核心价值不在于参数规模或榜单排名,而在于能否稳定、合规、低成本地嵌入真实业务流。理解模型能力边界、掌握token计算原理、构建结构化提示工程,是实现可靠调用的基础前提;而基于输入输出形态的场景化选型、融合失败率与工程适配的三维度成本模型、以及灰度-熔断-降级三级风控体系,则构成了国产大模型(如Qwen3、GLM-4、Kimi+)在金融、法律、医疗等高敏行业落地的关键技术路径。本文聚焦可审计、可计费、可回溯的生产级实践,提供从API注册到K8s网关部署的完整链路。

weixin_30216561的博客 342

宝塔面板安全指南:从开心版风险到官方最佳实践

服务器运维管理面板作为简化Linux服务器配置的重要工具,通过可视化界面降低了网站部署、数据库管理和安全设置的复杂度。其工作原理是通过封装底层命令行操作,提供统一的Web管理接口,让用户无需深入掌握系统命令即可高效管理服务器。这类工具的技术价值在于大幅提升运维效率,降低技术门槛,特别适合个人站长、开发者和中小企业快速搭建线上业务。在应用场景上,无论是Web应用部署、数据库管理还是服务器监控,运维面板都发挥着关键作用。然而,围绕宝塔面板等工具出现的“开心版”现象,却带来了严重的安全隐患和法律风险。这些非官方修

weixin_34279246的博客 397

Redis主从复制漏洞实战:从Awsome-Redis-Rogue-Server攻击到企业级防御

Redis主从复制是分布式系统中常见的数据同步机制,它通过主节点向从节点传输RDB快照实现数据一致性。然而,这一设计原理在特定场景下可能成为安全漏洞:当Redis实例配置不当(如未授权访问或弱密码)时,攻击者可伪装成恶意主节点,诱骗从节点同步精心构造的恶意RDB文件,从而在目标服务器写入SSH公钥或Webshell,实现权限提升。这种攻击方式的技术价值在于它利用了Redis协议本身的特性,而非软件缺陷,使得传统漏洞扫描难以覆盖。在企业内网环境中,Redis服务常因默认配置或运维疏忽暴露风险,结合自动化工具如

技术百科 461

免登录无弹窗游戏站搭建指南:从HTML5到本地存储与部署

在线小游戏体验的核心在于降低启动成本,用户希望点击即玩,无需注册、不被弹窗打断。这一需求催生了基于静态网页技术的轻量游戏平台。其技术原理并不复杂:利用HTML5、WebGL等浏览器原生能力承载游戏逻辑,借助localStorage、IndexedDB在本地保存进度,从而绕开账号体系。这种模式不仅提升了试玩转化率,也为个人开发者提供了低成本的内容分发方案,尤其适合个人博客、学校社团或企业内部娱乐场景。同时,清晰的开源协议、克制的资源请求与安全的部署方式,是保障长期可用性的关键。本文从客户端存储原理出发,分析如

weixin_29001683的博客 329

基于RoBERTa的LLM提示词注入检测:从原理到工程实践

在自然语言处理领域,文本分类是基础且关键的技术,它通过机器学习模型对文本语义进行理解和归类。其核心原理是利用预训练语言模型(如RoBERTa)学习文本的深层语义表征,再通过微调适应特定分类任务。这项技术的价值在于能够自动化、智能化地处理海量文本,显著提升信息处理的效率和准确性。在人工智能安全这一重要应用场景中,文本分类技术被用于识别恶意内容,例如在大语言模型应用中防范提示词注入攻击。通过构建高质量的攻防样本库,微调RoBERTa模型,可以训练出一个高效的“判决模型”,实时判别用户输入是否意图绕过或操控LLM

weixin_34021089的博客 349

视频裂变加群推广源码部署实战:从解压到私域引流落地

在私域流量运营中,视频裂变是一种高效的获客手段,其核心原理是通过内容钩子触发用户分享或加群行为,借助社交关系链实现指数级传播。H5落地页、任务引擎、群码管理等模块共同构成了这套转化链路的技术骨架。对开发者或运营者而言,理解任务判断逻辑、分享关系链追踪以及服务器环境配置,是让系统稳定运行的关键。这类源码通常以zip压缩包形式分发,部署时涉及文件完整性校验、解压报错处理、Nginx伪静态规则、数据库导入等工程实践问题。从应用场景看,无论知识付费、本地生活还是社群运营,视频裂变工具都能帮助团队快速搭建私域引流基础

weixin_34101914的博客 243

LLM应用安全实战:从原理到代码构建提示注入多层防御体系

在构建基于大语言模型(LLM)的应用时,模型安全是核心挑战之一。其原理在于,LLM通过分析上下文中的统计规律生成内容,缺乏对指令优先级的硬性判断,这为攻击者通过构造特定输入干扰模型逻辑提供了可能。这种攻击的技术价值在于,它能有效评估和提升AI系统的鲁棒性与可控性,防止模型被恶意引导产生数据泄露、欺诈内容或越权行为。在金融客服、智能助手、内容审核等实际应用场景中,防御此类攻击至关重要。本文聚焦于**提示注入**这一具体威胁,并深入探讨了**纵深防御**策略,通过输入预处理、推理加固、输出验证及架构隔离等多层防

498

【驭风计划 机器学习】实验6 基于集成学习的 Amazon 用户评论质量预测

¶随着电商平台的兴起,以及疫情的持续影响,线上购物在我们的日常生活中扮演着越来越重要的角色。在进行线上商品挑选时,评论往往是我们十分关注的一个方面。然而目前电商网站的评论质量参差不齐,甚至有水军刷好评或者恶意差评的情况出现,严重影响了顾客的购物体验。因此,对于评论质量的预测成为电商平台越来越关注的话题,如果能自动对评论质量进行评估,就能根据预测结果避免展现低质量的评论。本案例中我们将基于集成学习的方法对 Amazon 现实场景中的评论质量进行预测。

Mege1的博客 473

Nginx文件描述符泄露?浅析FD_CLOEXEC文件描述符标志

很精彩的一篇文章。 1. 引子 事情是这样的,最近我们线上一个基于nginx的http服务经常报警,具体如下: accept() failed (24: Too many open files) while accepting new connection on 0.0.0.0:80 https://blogs.360.cn/post/nginx%E6%96%87%E4%BB%B6%E6%8F%8F%E8%BF%B0%E7%AC%A6%E6%B3%84%E9%9C%B2%EF%BC%..

Jian Sun_的博客 484

13个GNS3 3.0.5 appliances设备模板镜像合集:IOSv/L2,IOU L2/L3,以及IOS-XE

13个GNS3 appliances设备模板:IOSv/L2,IOU L2/L3,以及IOS-XE合集

haierccc的博客 1075

Intel RealSense D435深度相机实战:从数据采集到点云生成的完整避坑指南

本文详细介绍了Intel RealSense D435深度相机的实战应用,从数据采集到点云生成的完整流程,并提供了避坑指南。内容包括环境配置、硬件调优、数据采集技巧、点云生成核心技术及典型场景解决方案,帮助开发者高效利用D435进行机器人导航、三维重建等应用。

weixin_29054195的博客 472
上一篇: Ansible与Apache练习
下一篇: 【01】Nginx的编译安装
FlamencaH
博客等级 码龄7年 13粉丝 40原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值