
nginx
文章平均质量分 56
勤径苦舟
书山有路勤为径,学海无涯苦作舟。只技术分享,非商业行为,我很少看消息,所以你们给我发的消息回的很少。
邮件:920786312@qq.com
微信:zhou920786312
展开
-
nginx--基础--3.16--案例--静态资源文件压缩
界面是一个待办界面,打开这个界面会加载15个js。可以看到压缩级别5是最好的。可以看到8个缓冲区是最好的。原创 2024-12-23 20:32:34 · 239 阅读 · 0 评论 -
nginx--基础--3.15--案例--只允许指定的网站进行跨域请求
null或*原创 2024-10-10 16:53:05 · 561 阅读 · 0 评论 -
nginx--基础--3.14--案例--访问限制
只有请求都不满足以下条件的时候,才会返回403。原创 2024-10-10 16:23:04 · 678 阅读 · 0 评论 -
nginx--基础--3.13--案例--项目上的IP白名单
【代码】nginx--基础--3.13--案例--项目上的IP白名单。原创 2022-05-15 10:11:06 · 434 阅读 · 0 评论 -
nginx--基础--23---如何找到处理请求的server指令块
【代码】nginx--基础--23---如何找到处理请求的server指令块。原创 2021-02-02 15:35:34 · 60 阅读 · 1 评论 -
nginx--基础--22--处理http请求头部的流程
首先内核经过请求的三次握手成功后通过操作系统的负载均衡算法选择一个监听的worker进程worker进程通过epoll事件机制epoll-wait方法返回一个链接句柄事件模块epoll分配链接内存池 connection_pool_size:512字节事件模块回调Http模块ngx_http_init_connection方法,并且添加超时定时器事件模块epoll切换其它请求链接。原创 2021-02-01 16:29:04 · 114 阅读 · 1 评论 -
nginx--基础--21--使用动态模块提升运维效率
当我们仅仅需要修改某一个模块或者升级某个模块功能时、这时候我可以仅仅编译这个动态库就可以,升级的时候用新的动态文件替换掉旧的动态文件即可。Configure加入动态模块。请求情况(图片变小)原创 2021-02-01 16:27:18 · 135 阅读 · 1 评论 -
nginx--基础--20--常用的容器:哈希表、红黑树
name:keyvalue: 存用户结构体nginx的哈希表一般用来存放静态的不变的内容,一旦确定,就不会有插入和删除操作。bucket size:bucket的大小max_size:哈希表bucket的个数。原创 2021-02-01 16:25:30 · 76 阅读 · 1 评论 -
nginx--基础--19--共享内存
我们打开了一块内存,比如说10M,一整块0到10M之间,多个worker进程之间可以同时的访问它,包括读取和写入。原创 2021-01-27 17:34:02 · 194 阅读 · 0 评论 -
nginx--基础--18--内存池
官方文档说,它对性能的影响很小,如果你的URL通常都特别长的那种,可以考虑把这调整大些。如果你的URL和head很小也可以调小点,这样也会提高点性能,能做更大的并发量。每当有一个tcp连接的时候,这个tcp连接可能存在着很多的http请求,也就是说有http的请求连接一直没有关闭。需要保存大量的上下文的信息,如。原创 2021-01-27 17:32:31 · 53 阅读 · 0 评论 -
nginx--基础--17--连接池
这个连接不止去用于客户端的连接,也用于面向上游服务器的连接,所以如果我们做反向代理的时候,每个客户端意味着消耗我们两个connections。每一个连接自动的对应2个事件。原创 2021-01-27 17:30:43 · 120 阅读 · 0 评论 -
nginx--基础--16--模块
用来说明每一个模块的结构体这个结构体中有一个成员叫commands是通用的模块子模块:大模块里面的小模块任何模块都必须遵循同样的规则,但每一类子模块它会重新定义一些新的规则。可以定义模块的一个顺序index序号这个模块的顺序决定有些模块如果跟其它模块是冲突的话,先生成的模块会阻碍后生成的模块发挥作用。原创 2021-01-27 10:10:56 · 223 阅读 · 0 评论 -
nginx--基础--15--同步异步+阻塞非阻塞+nginx的IO模型
当一个异步过程调用发出后,调用者不能立刻得到结果。实际处理这个调用的部件在完成后,通过状态、通知和回调来通知调用者。在整个操作(包括将数据从内核拷贝到用户空间)完成后才通知用户进程.原创 2021-01-26 15:50:03 · 161 阅读 · 0 评论 -
nginx--基础--14--Nginx的请求切换
在通常的服务器里如appache,Tomcat等 ,都是需要进程间切换(内核态切换),每次切换可能需要5微秒 但是如果上万甚至几十万的进程的话,消耗是成指数级的。原创 2021-01-26 15:00:45 · 236 阅读 · 0 评论 -
nginx--基础--13--epoll的优劣与原理
一、网络收发与Nginx事件间的对应关系1.1、 Nginx是一个事件驱动的框架所谓事件,主要指的是网络事件。Nginx每个连接,会自然对应两个网络事件一个读事件1.2、 什么是网络事件如图,比如主机A就是我们家里的一台笔记本电脑,主机B就是我们的服务器,上面跑着Nginx。从主机A发送一个http的get请求,发送到主机B,这样一个过程中究竟经历了哪些网络事件呢?如在下面数据流层。1.2.1、 网络事件应用层:我们发送了一个get请求到了传输层了它主要在原创 2021-01-26 14:40:03 · 81 阅读 · 0 评论 -
nginx--基础--12--网络收发与Nginx事件间的对应关系+事件驱动模型
如图,比如主机A就是我们家里的一台笔记本电脑,主机B就是我们的服务器,上面跑着Nginx。从主机A发送一个http的get请求,发送到主机B,这样一个过程中究竟经历了哪些网络事件呢?如在下面数据流层。原创 2021-01-26 14:17:50 · 60 阅读 · 0 评论 -
nginx--基础--11--优雅地关闭worker进程
热部署这样的过程中,使用了优雅地停止nginx。原创 2021-01-26 14:16:02 · 204 阅读 · 1 评论 -
nginx--基础--10--使用信号管理Nginx的父子进程
上面四个信号可以通过使用nginx命令行加特定的命令直接向master进程发送的。管理worker进程的方式首先是监控worker进程有没有发送CHLD信号。mater进程还可以接收一些信号来管理worker进程。可以启动worker进程,USR2和WINCH信号。原创 2021-01-26 11:29:25 · 33 阅读 · 0 评论 -
nginx--基础--09--Nginx的进程结构
一、Nginx的进程结构Nginx有两种进程结构:单进程结构单进程结构不适合生产环境,只适合做开发调试使用多进程结构在生产环境中我们必须保证Nginx足够健壮,以及Nginx可以利用多核的特性,而单进程的Nginx是做不到这一点的,所以默认额配置中都是打开多进程的Nginx。多进程的Nginx的进程模型二、Nginx的进程是这样的,会有一个父进程叫MASTER PROCESS,master进程,它会有很多子进程,这些子进程会分为两类一类叫做worker进程一类原创 2021-01-26 11:27:07 · 60 阅读 · 0 评论 -
nginx--基础--08--请求处理流程
从图左侧开始分析,WEB,EMAIL,TCP大致有三种流量进入Nginx以后,Nginx有三个大的状态机。原创 2021-01-26 11:20:24 · 63 阅读 · 1 评论 -
nginx--基础--07--ssl安全协议
openssl是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,它可以避免信息被窃听到。SSL是Secure Sockets Layer(安全套接层协议)的缩写,可以在Internet上提供秘密性传输。Netscape(网景)公司在推出第一个Web浏览器的同时,提出了SSL协议标准。其目标是保证两个应用间通信的保密性和可靠性,可在服务器端和用户端同时实现支持。原创 2021-01-25 17:50:12 · 169 阅读 · 0 评论 -
nginx--基础--06--热部署--版本升级和回退
方便我们回滚,也就是发现新的nginx程序有问题了,这时候因为老的master进程还在,所以我们通过向它发送HUP信号,相当于执行了一次reload,它会起新的worker进程,再向新的master发送QUIT信号,也就是要求其对应的新的worker进程优雅的退出,这就实现了一个回滚。正在运行的ngixn是1.14.2版本的,我想不关闭的情况下,想将版本升级为1.15.0。可以看到现在有2个master,2个worker,老的进程都存在。向老master发送HUP,向新master发送QUIT。原创 2021-01-25 17:49:13 · 171 阅读 · 0 评论 -
nginx--基础--05--理论和基础
一、配置 worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server {原创 2021-01-25 17:49:05 · 18 阅读 · 0 评论 -
nginx--基础--4.4--配置--Listen指令
目的是:监听端口。原创 2021-01-25 17:48:56 · 363 阅读 · 0 评论 -
nginx--基础--4.3--配置--指令
main。原创 2021-01-25 17:48:45 · 42 阅读 · 0 评论 -
nginx--基础--4.2--配置--性能调优
web 应用中 listen 函数的 backlog 默认会给我们内核参数的 net.core.somaxconn 限制到128,而nginx定义的NGX_LISTEN_BACKLOG 默认为511,所以有必要调整这个值。使用gzip压缩功能,可能为我们节约带宽,加快传输速度,有更好的体验,也为我们节约成本,所以说这是一个重点。被缓存的页面或数据更新了,用户看到的可能还是旧的内容,反而影响用户体验。注意:我们使用gzip的功能是需要消耗CPU的!网站不希望被缓存的内容。是否打开accept锁。原创 2021-01-25 17:48:33 · 288 阅读 · 0 评论 -
nginx--基础--4.1--参数--参数详情
无论是否指定,text/html默认已经压缩,设置哪压缩种文本文件可参考 conf/mime.types。允许sendfile方式传输文件,默认为off,可以在http块,server块,location块。如果请求是通过HTTP流水线(pipelined)发送,pipe值为"p",否则为"."。连接超时时间,默认为75s,可以在http,server,location块。设置网路连接序列化,防止惊群现象发生,默认为on。请求的长度(包括请求行,请求头和请求正文)。压缩类型,匹配MIME类型进行压缩。原创 2021-01-25 17:47:52 · 57 阅读 · 1 评论 -
nginx--基础--3.12--案例--显示文件目录
【代码】nginx--基础--3.12--案例--显示文件目录。原创 2021-01-12 11:43:22 · 132 阅读 · 0 评论 -
nginx--基础--3.11--案例--安装echo模块
【代码】nginx--基础--3.12--案例--显示文件目录。原创 2021-01-12 11:42:18 · 186 阅读 · 1 评论 -
nginx--基础--3.10--案例--静态缓存
进入缓存空间,我们可以看到第一级目录 6。继续下去,我们可看到第二级目录 46。查看内容,就是http响应的内容。继续下去,我们可看到缓存文件。原创 2021-01-12 11:41:49 · 367 阅读 · 0 评论 -
nginx--基础--3.9--案例--负载均衡
准备2台服务器。原创 2021-01-12 11:40:31 · 194 阅读 · 1 评论 -
nginx--基础--3.8--案例--反向代理
可以做到在一个服务器上部署多个项目,分别使用不同的二级域名来访问不同的端口。原创 2021-01-12 11:39:46 · 166 阅读 · 0 评论 -
nginx--基础--3.7--案例--日志配置
【代码】nginx--基础--3.7--案例--日志配置。原创 2021-01-12 11:38:47 · 325 阅读 · 0 评论 -
nginx--基础--3.6--案例--网络限速配置
【代码】nginx--基础--3.6--案例--网络限速配置。原创 2021-01-12 11:36:30 · 140 阅读 · 0 评论 -
nginx--基础--3.5--案例--黑白名单配置
【代码】nginx--基础--3.5--案例--黑白名单配置。原创 2021-01-07 17:42:08 · 293 阅读 · 1 评论 -
nginx--基础--3.3--案例--实现动静分离
原因是因为静态文件配置了/static路径,location里面又配置了root,那么在目录中找文件的时候默认会再加上一个static,真实的寻找路径是 html/www/static/static路径,这个路径是没有的,因此404。原创 2020-11-17 15:16:57 · 287 阅读 · 0 评论 -
nginx--基础--3.2--案例--自定义一个页面
【代码】nginx--基础--3.2--案例--自定义一个页面。原创 2020-11-17 15:16:15 · 471 阅读 · 0 评论 -
nginx--基础--3.1--案例--日志切割
【代码】nginx--基础--3.1--案例--日志切割。原创 2020-11-17 15:13:33 · 175 阅读 · 0 评论 -
nginx--基础--02--介绍
master会重新加载配置文件,然后启动新的进程,使用的新的worker进程来接受请求,并告诉老的worker进程他们可以退休了,老的worker进程将不会接受新的,老的worker进程处理完手中正在处理的请求就会退出。负责维持一个运行循环(run-loop),执行网络请求处理的不同阶段的模块功能,如网络读写、存储读写、内容传输、外出过滤,以及将请求发往上游服务器等。由于防火墙的原因,我们并不能直接访问谷歌,那么我们可以借助VPN来实现,这就是一个简单的正向代理的例子。原创 2020-11-17 15:11:33 · 221 阅读 · 0 评论 -
nginx--基础--1.4--部署--keepalived实现高可用
设定129的keepalived为master,128的keepalived为backup,分别看一下两个的配置文件。原创 2020-11-17 14:57:52 · 1923 阅读 · 1 评论