ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Linux系统——Nginx小总结

2026/9/18 14:50:33 拓冰建站 浏览量
Linux系统——Nginx小总结

目录

一、影响用户体验的因素

二、网络连接——Apache/Nginx服务请求过程

三、I/O模型——Input/Output模型

1.同步/异步

2.阻塞/非阻塞

3.同步异步/阻塞非阻塞组合

四、Nginx用法


 

一、影响用户体验的因素

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

二、网络连接——Apache/Nginx服务请求过程

  • 客户端发起请求 先发送到网卡   
  • 网卡收到的报文复制到内核空间
  • 内核空间再复制到用户空间的应用程序空间
  • nginx 分析得到一个磁盘页面文件
  • 再将需求反馈给内核空间,应为应用程序没有权限从磁盘上直接读取文件,需要依靠内核
  • 内核去磁盘上找到所需要的文件,加载到内核空间
  • 加载后再复制到用户空间
  • 用户空间构建响应报文,交给内核空间,内核空间再复制给网卡,返回给用户
  • 整个过程会来回切换 用户空间,内核空间  那么我们可以再次基础上做优化处理

三、I/O模型——Input/Output模型

1.同步/异步

A程序需要调用B程序的某一个功能,A发送一个请求需要B完成一个任务

  • 同步:B不会主动去通知A是否完成需要A自己去问
  • 异步:B会主动通知A是否完成

2.阻塞/非阻塞

A发送一个请求需要B完成一个任务

  • 阻塞:B在完成A的任务前不能执行其他任务
  • 非阻塞:B在完成A的任务前可以同步进行其他任务

3.同步异步/阻塞非阻塞组合

  • 同步阻塞:烧水壶如果水没烧好前,我的人不能离开
  • 同步非阻塞:烧水壶如果水没烧好前,我可以离开一会儿,需要时不时的回来看水有没有烧开
  • 异步阻塞:烧水壶可以提醒我水烧开了,但是我还是要时不时回来看一下水有没有烧开
  • 异步非阻塞:烧水壶可以提醒我水烧开了,我可以在烧水的同时,可以去做其他的事情

四、Nginx用法

  • nginx -v——查看版本信息
  • nginx -V——查看编译信息
  • nginx -s——发送信号(kill -l查看信号)
  • nginx -t——检查语法
  • nginx -g——使用选项后的配置,不使用配置文件里的内容
  • ps aux|grep nginx
  • systemctl start/stop/status nginx
  • nginx -g "user cxk"
  • nginx -g ’daemon off;‘ 前台运行命令

源码包给主配置文件进行高亮:cp -r /opt/nginx-1.18.0/contrib/vim/*    /usr/share/vim/vimfiles/

发送信号  nginx -s  send signal to a master process: stopquitreopenreload

内容释义
SIGINT,SIGTERM(stop)Shut down quickly(直接停止)
SIGHUP(reload)Reload configuration, start the new worker process with a new configuration, and gracefully shut down old worker processes.(重新加载配置文件)
SIGHQUIT(quit)Shut down gracefully(优雅的退出:有人在访问不会结束进程)
SIGUSR1(reopen)Reopen log files(重新分割日志)
SIGUSR2Upgrade the nginx executable on the fly. (运行中升级)
SIGWINCHShut down worker processes gracefully.(优雅的关闭worker进程,work进程负责处理请求,还有请求不会关闭)

kill  -USR1 `cat /apps/nginx/run/nginx.pid`     重新生成日志文件