Nginx是一个事件驱动的框架,所谓事件主要是指网络事件,那么Nginx每个连接会自然对应两个事件,一个读事件,一个写事件,所以我们在深入了解Nginx的各种原理,以及它在极端场景下的错误场景的处理时,我们必须首先理解什么是网络事件,下面我们来看如下的图:        比如主机A就是我们在家里的一台笔记本电脑,主机B尼就是我们的服务器上面跑的Nginx;从主机A发送一个h
转载 2024-07-11 19:15:09
23阅读
Linux信号(signal)是一种软件中断,用于通知进程发生了某种事件。其中,SIGALRM信号是一种特殊的信号,在Linux系统中常用于定时器。在编程中,我们可以使用SIGALRM信号来实现定时任务,比如定时执行某个函数或者定时处理某些事件。 在Linux系统中,我们可以通过C语言中的signal函数来注册信号处理函数。当接收到SIGALRM信号时,系统会调用该处理函数来处理信号。下面是一个
原创 2024-04-01 10:14:31
106阅读
epoll模式下的水平触发、边沿触发1,epoll默认是水平触发2,水平触发通俗来讲:只要有数据,epoll_wait函数就一直返回;边沿触发通俗来讲:只有socket状态发生变化,epoll_wait函数才会返回。3,水平触发优、缺点及应用场景:优点:当进行socket通信的时候,保证了数据的完整输出,进行IO操作的时候,如果还有数据,就会一直的通知你。缺点:由于只要还有数据,内核就会不停的从内
转载 2023-06-13 16:31:21
150阅读
       Nginx事件驱动是根据操作系统以及操作系统内核设计了很多不同的驱动方式,epoll事件驱动机制是Unix系统的事件驱动模式。本文重点介绍ngx_epoll_module是如何基于Linux内核实现epoll事件驱动模型,实理解Nginx在几十万并发连接下高效利用服务器资源的基本原理。         e
发布方式1.平滑发布在发布的过程中不影响用户的使用,系统不会因发布而暂停对外服务,不会造成用户短暂性无法访问;保障服务一直可以持续使用在单机模式下,启动多端口。如有upstream myapp{ server 服务1:8080; //app1 server 服务2:8080; //app2 }用负载均衡ngnix合理分配各个通道。可以通过修改ngni
在进行堵塞式系统调用时。为避免进程陷入无限期的等待,能够为这些堵塞式系统调用设置定时器。Linux提供了alarm系统调用和SIGALRM信号实现这个功能。 要使用定时器。首先要安装SIGALRM信号。假设不安装SIGALRM信号,则进程收到SIGALRM信号后。缺省的动作就是终止当前进程。 SIG
转载 2018-02-14 01:12:00
442阅读
接着上回的博客,回顾一下http模块执行的11个阶段,我们继续下面的内容。precontent阶段 : 按序访问资源的try_files模块功能:依次试图访问多个url对应的文件(由root或者alias指定),当文件存在时直接返回文件内容,如果所有文件夹都不存在,按照最后一个url或者code返回。location / { try_files $uri $uri/ /inde
转载 2024-04-09 02:17:13
44阅读
epoll模型边沿触发 EPOLL 事件有两种模型:Edge Triggered  (ET) 边缘触发 只有数据到来,才触发,不管缓存区中是否还有数据。int op = EPOLLIN | EPOLLET;//边缘触发,读接收缓冲区中的数据的时候,读完一部分数据就会减少一部分,减少的时候不会触发,只有当客户端再次发送数据,接收数据缓存区数据有一个上升状态才会触发ep
转载 2023-11-22 16:58:57
84阅读
01 基本原理1.1 Nginx 的进程模型Nginx 服务器,正常运行过程中:多进程:一个 Master 进程、多个 Worker 进程Master 进程:管理 Worker 进程对外接口:接收外部的操作(信号)对内转发:根据外部的操作的不同,通过信号管理 Worker监控:监控 worker 进程的运行状态,worker 进程异常终止后,自动重启 worker 进程Worker 进程:所有 W
 一. nginx upload module原理Nginx upload module通过nginx服务来接受用户上传的文件,自动解析请求体中存储的所有文件上传到upload_store指定的目录下。这些文件信息从原始请求体中分离并根据nginx.conf中的配置重新组装好上传参数,交由upload_pass指定的段处理,从而允许处理任意上传文件。每个上传文件中的file字段值被一系列
 友情提示: 动静分离需要在负载均衡的环境基础上搭建,负载均衡可以参考 介绍 就是将网站静态资源(HTML,,CSS,img等文件)与后台应用分开部署,提高网站响应速度,降低对后台应用服务器的请求。 配置 添加、代理静态资源集群#进入nginx安装的conf目录 cd /usr/local/nginx/conf/ #打开nginx.conf文件添加
转载 10月前
23阅读
我们经常会遇到为阻塞操作设置超时的问题,比如说阻塞套接字read读取设置10秒超时,其中一个办法就是调用alarm函数,它在指定超时时期产生SIGALRM,使得阻塞操作中断。 但其弊端在于: 1、可能干扰进程中现有的alarm调用,如timer、settimer、sleep等。 2、在多线程化程
转载 2017-10-23 00:51:00
137阅读
2评论
命令:curl 在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。它支持文件的上传和下载,是综合传输工具,但按传统,习惯称url为下载工具。 语法:# curl [option] [url] 常见参数: -A/–user-agent 设置用户代理发送给服务器 -b/–cookie curl http://www.linux.c
参考地址:  https://mp.weixin.qq.com/s/afRjyYafzWMF7mRQqO3I2A 什么是NginxNginx是一个 轻量级/高性能的反向代理Web服务器,用于 HTTP、HTTPS、SMTP、POP3 和 IMAP 协议。他实现非常高效的反向代理、负载平衡,他可以处理2-3万并发连接数,官方监测能支持5万并发,现在中国使用nginx网站用户有很多,例如:
转载 5月前
80阅读
######Nginx配置文件nginx.conf中文详解##### #定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为等于CPU总核心数。 worker_processes 8; #全局错误日志定义类型,[ debug | info | notice | warn | error | crit ] error_log /usr/local/nginx
这份指南是对nginx的基本介绍,描述了用户借助nginx可以实现的一些简单任务。只支持运行在已经安装了nginx的读者机器上;如果没有安装,请参考Installing nginx 页面。这份指南描述了怎样启动和停止nginx以及重新加载配置,说明了配置文件的结构以及如何启动nginx以输出静态内容,怎样设置代理服务器 和怎样连接FastCGI应用。nginx有一个主进程和几个工作进程。主进程的主
一、alarm函数#include <unistd.h>unsigned int alarm(unsigned int seconds);功能:使用alarm函数可以设置一个时间值(闹钟时间),当执行到该函数之后开始计时,超时时产生SIGALRM信号。如果不忽略或不捕捉此信号,则其默认动作是终止该进程 参数: 定时秒数(以秒为单位) 如果秒为零,则取消任何挂起的警...
http1.1的弱点http2的优点1. 不再像http1那样用字符串的方式来传送数据,而是直接用二进制的方式打包成帧这句话很多书或者博客都是这样写,其实根本就没有点透,比如你说http1.1是用字符串的方式传递数据,那么就算是字符串,真正到了底层,通过网卡、通过以太网水晶头网线,通过wifi射频信号,那特么不还是高低电平二进制嘛,怎么就说http2是二进制方式打包呢?本质上是这样的,字
一、alarm函数#include <unistd.h>unsigned int alarm(unsigned int seconds);功能:使用alarm函数可以设置一个时间值(闹钟时间),当执行到该函数之后开始计时,超时时产生SIGALRM信号。如果不忽略或不捕捉此信号,则其默认动作是终止该进程 参数: 定时秒数(以秒为单位) 如果秒为零,则取消任何挂起的警...
1.监控nginx状态1)现在需要被监控的服务器下的/etc/zabbix目录下创建scripts(建议脚本放到此创建并放置目录)2)vimnginx.sh脚本监控服务进程/端口(第二行是进程/第三行是端口)如果返回值为trun,则为1,如果返回值不对,则为0#!/bin/bash#result=netstat-anpt|grepnginx|grep-vgrepresult=netstat-anp
原创 2020-06-08 14:33:48
1239阅读
  • 1
  • 2
  • 3
  • 4
  • 5