Linux系统——Nginx小总结

news2024/12/23 4:08:12

目录

一、影响用户体验的因素

二、网络连接——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`     重新生成日志文件

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

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

相关文章

freemarker模板引擎结合node puppeteer库实现html生成图片

效果图: 先看效果图,以下是基于freemarker模板渲染数据,puppeteer加载html中的js及最后图片生成: 背景: 目前为止,后台java根据html模板或者一个网页路径生成图片,都不支持flex布局及最新的c…

前端解析后端返回文件流格式数据

当后端接口返回数据是一个文件流数据时,如下后端返回给我的是一个pdf文件流数据 methods: {gotoPri() {protocolApi().then(res > {this.createPdf(res.data,XXX协议)})},createPdf(res, name) {// Blob构造函数返回一个新的 Blob 对象并指定type类型。let blob …

递归过程详解(Python)

See https://zhuanlan.zhihu.com/p/382721019

嵌入式学习之Linux入门篇——使用VMware创建Unbuntu虚拟机

目录 主机硬件要求 VMware 安装 安装Unbuntu 18.04.6 LTS 新建虚拟机 进入Unbuntu安装环节 主机硬件要求 内存最少16G 硬盘最好分出一个单独的盘,而且最少预留200G,可以使用移动固态操作系统win7/10/11 VMware 安装 版本:VMware Works…

2.1_4 进程通信

文章目录 2.1_4 进程通信(一)什么是进程间通信(二)为什么进程通信需要操作系统支持(三)共享存储(四)消息传递(1)直接通信方式(2)间接通…

【Spring MVC篇】简单案例分析

个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【Spring MVC】 本专栏旨在分享学习Spring MVC的一点学习心得,欢迎大家在评论区交流讨论💌 目录 一、加法计算器二…

system_v

共享内存 创建共享内存 key_t ftok(const char *pathname, int proj_id);使用相同的pathname和proj_id可以得到相同的key_t pathname必须是一个存在的目录 int shmget(key_t key, size_t size, int shmflg);需要使用ftok获取key_t IPC_CREAT——不存在就创建&#xff0c…

鸿蒙DevEco Service开发准备与使用

DevEco低代码是一个基于Serverless和ArkUI的端云一体化低代码开发平台,可通过拖拽式开发,可视化配置构建元服务。打通HarmonyOS云侧与端侧能力,轻松实现HMS Core和AGC Serverless能力的调用。通过与元服务生态、HMS Core、AGC Serverless平台…

论文阅读:Ground-Fusion: A Low-cost Ground SLAM System Robust to Corner Cases

前言 最近看到一篇ICRA2024上的新文章,是关于多传感器融合SLAM的,好像使用了最近几年文章中较火的轮式里程计。感觉这篇文章成果不错,代码和数据集都是开源的,今天仔细读并且翻译一下,理解创新点、感悟研究方向、指导…

政安晨:【机器学习基础】(一)—— 泛化:机器学习的目标

政安晨的个人主页:政安晨 欢迎 👍点赞✍评论⭐收藏 收录专栏: 政安晨的机器学习笔记 希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提出指正! 简述 泛化是机器学习中的基本概念之一。它指的是通过学习…

ElasticSearch索引数据备份与恢复

索引数据备份 在磁盘创建备份目录并授权 # 创建备份目录 /home/esbackup # 授权 chmod 777 /home/esbackup修改配置文件elasticsearch.yml echo path.repo: ["/home/esbackup"] >> /etc/elasticsearch/elasticsearch.yml重启elasticsearch(我是docker创建的…

嵌入式按键处理驱动(easy_button)

简介 在嵌入式裸机开发中,经常有按键的管理需求,GitHub上已经有蛮多成熟的按键驱动了,但是由于这样那样的问题,最终还是自己实现了一套。本项目地址:bobwenstudy/easy_button (github.com)。 项目开发过程中参考了如…

了解 JavaScript 中的重放攻击和复现攻击

在网络安全领域,重放攻击(Replay Attack)和复现攻击(Playback Attack)是一些可能导致安全漏洞的攻击形式。这两种攻击类型涉及在通信过程中再次发送已经捕获的数据,以达到欺骗系统的目的。本文将介绍 JavaS…

Linux之JAVA环境配置Tomcat离线安装与启动

目录 一.前提 二.Linux安装JDK 1.解压 2.配置环境变量 3.设置环境变量生效 三.Tomcat安装(开机自启动) 1.解压 2.启动Tomcat 3.设置防火墙 四.MySQL安装(开机自启动) 1.删除固有数据库 2.将MySQL安装包解压到指定目录…

【Linux】部署单机项目(自动化启动)---(图文并茂详细讲解)

目录 一 准备工作 1.1 连接服务器拷贝文件 1.2 解压 二 JDK安装 2.1 配置坏境变量 2.2 查看版本 三 Tomcat(自启动) 3.1 复制启动命令的位置 3.2 添加命令相关配置文件 3.2.1 配置jdk及tomcat目录 3.2.2 添加优先级 3.3 设置自启动命令 3.4 开放端口 四 My…

CSP-J 2023 复赛第4题:旅游巴士

【题目来源】https://www.luogu.com.cn/problem/P9751https://www.acwing.com/problem/content/description/5313/【题目描述】 小 Z 打算在国庆假期期间搭乘旅游巴士去一处他向往已久的景点旅游。 旅游景点的地图共有 n 处地点,在这些地点之间连有 m 条道路。 其中…

【深度学习目标检测】十九、基于深度学习的芒果计数分割系统-含数据集、GUI和源码(python,yolov8)

使用深度学习算法检测芒果具有显著的优势和应用价值。以下是几个主要原因: 特征学习的能力:深度学习,特别是卷积神经网络(CNN),能够从大量的芒果图像中自动学习和提取特征。这些特征可能是传统方法难以手动…

每日五道java面试题之spring篇(五)

目录: 第一题. 使用 Spring 有哪些方式?第二题. 什么是Spring IOC 容器?第三题. 控制反转(IoC)有什么作用?第四题. IOC的优点是什么?第五题. BeanFactory 和 ApplicationContext有什么区别? 第一题. 使用 Spring 有哪…

数据湖技术方案

围绕数据人工智能计算实现材料研发全流程加速需要,面向“数字反应堆”需要的数据湖服务,“数据湖”是统一存储池,可对接多种数据输入方式,可以存储任意规模的结构化、半结构化、非结构化数据。 数据湖可无缝对接多种计算分析平台&…

Mac安装Appium

一、环境依赖 一、JDK环境二、Android-SDK环境(android自动化)三、Homebrew环境四、Nodejs 安装cnpm 五、安装appium六、安装appium-doctor来确认安装环境是否完成七、安装相关依赖 二、重头大戏, 配置wda(WebDriverAgent&#x…