
nginx
文章平均质量分 58
Hello,C++!
这个作者很懒,什么都没留下…
展开
-
14 张图搞懂 Nginx 高性能网络工作原理!
在单进程的网络编程模型中。所有的网络相关的动作都是在一个进程里完成的,如监听 socket 的创建, bind、listen。再比如 epoll 的创建、要监听事件的添加,以及 epoll_wait 等待时间发生。这些统统都是在一个进程里搞定。一个客户端和使用了 epoll 的服务端的交互过程如下图所示。以下是其大概的代码示例(没耐心看的同学可以先)。在单进程模型中,不管有多少的连接,是几万还是几十万,服务器都是通过 epoll 来监控这些连接 socket 上的可读和可写事件。当某个 socket 上有转载 2022-07-11 10:09:19 · 368 阅读 · 0 评论 -
大厂面经丨Nginx 面试 40 问
nginx转载 2022-06-29 18:47:16 · 556 阅读 · 0 评论 -
nginx 源码学习笔记(一)——初识nginx helloworld模块
最近看完一本书,而且还是跟我一个学校的人写的关于nginx的内容,个人觉得内容可以更充实点,包括整本书的后半本没有太大的价值,但是总体来说还是不错的哈哈!(是不有点自恋),不费话了,今天记录下我刚刚编写的nginx hello_world模块内容,网上也没有源代码,就完全手敲了,累呀!1.nginx模块首先nginx和apache最大的不同就是nginx的模块不能够动态添加,需要在编译时,指定要添加的模块路径,与nginx源码一起编译。nginx模块的处理流程:a.客户端发送http请求道ngi转载 2022-05-31 13:29:45 · 653 阅读 · 0 评论 -
nginx 源码学习笔记(二)——nginx精粹-模块
看了一点nginx的源码发现,nginx的模块思想确实吸引了我,也不得不佩服俄罗斯人的想问题方式,要分析nginx源码,首先要搞懂的就是nginx的模块思想以及相关的数据结构。还记得我们上一次写的helloworld模块么?里面涉及最重要的数据就是ngx_module_t指针数组,这个指针数组包含了当前编译版本支持的所有模块,这个指针数组定义实在自动脚本生成的objs/ngx_modules.c中,如下:extern ngx_module_t ngx_core_module;extern ngx_m转载 2022-05-31 13:36:48 · 144 阅读 · 0 评论 -
nginx 源码学习笔记(三)——nginx精粹-模块
下面开始真正"nginx之旅",屏住呼吸吧!首先找好入手点,对于nginx的入手点就是ngx_module_t结构,他的声明在src/core/ngx_conf_file.h中(我的版本nginx-1.0.13)#define NGX_MODULE_V1 0, 0, 0, 0, 0, 0, 1#define NGX_MODULE_V1_PADDING 0, 0, 0, 0, 0, 0, 0, 0struct ngx_module_s { ngx_uint_t转载 2022-05-31 13:42:21 · 219 阅读 · 0 评论 -
nginx 源码学习笔记(四)——nginx精粹-模块
接下来,继续理解helloworld模块中的指令。helloworld中的代码/* Commands */static ngx_command_t ngx_http_hello_world_commands[] = { { ngx_string("hello_world"), NGX_HTTP_LOC_CONF|NGX_CONF_NOARGS, ngx_http_hello_world, 0, 0, NULL }, ng转载 2022-05-31 13:46:19 · 190 阅读 · 0 评论 -
Nginx源码分析(25篇)
Nginx源码分析 - 初探Nginx的架构(01)Nginx源码分析 - 基础数据结构篇 - 内存池 ngx_palloc.c(02)Nginx源码分析 - 基础数据结构篇 - 数组结构 ngx_array.c(03)Nginx源码分析 - 基础数据结构篇 - 缓冲区结构 ngx_buf.c(04)Nginx源码分析 - 基础数据结构篇 - 双向链表结构 ngx_queue.c(05)Nginx源码分析 - 基础数据结构篇 - 单向链表结构 ngx_list.c(06)Nginx源码分析 -转载 2022-02-11 11:44:07 · 517 阅读 · 0 评论 -
nginx源码学习笔记
nginx 源码学习笔记(一)——初识nginx helloworld模块nginx 源码学习笔记(二)——nginx精粹-模块nginx 源码学习笔记(三)——nginx精粹-模块nginx 源码学习笔记(四)——nginx精粹-模块nginx 源码学习笔记(五)——nginx精粹-模块nginx 源码学习笔记(六)——nginx基本数据结构nginx 源码学习笔记(七)——内存分配相关源码分析nginx 源码学习笔记(八)——基本容器——array数组nginx 源码学习笔记(九)——基转载 2022-02-11 11:34:35 · 207 阅读 · 0 评论 -
反向代理和正向代理的区别
正向代理位于客户端一侧,正向代理代理客户端。反向代理位于服务器一侧,反向代理代理服务器。原创 2022-02-07 11:50:51 · 1551 阅读 · 0 评论 -
nginx-tomcat反向代理以及负载均衡测试
修改/conf/server.xml文件,重启tomcat即可。 /* 修改SHUTDOWN端口号,默认是8005,将其修改为未被占用的端口号 */ <Server port="9005" shutdown="SHUTDOWN"> /* 修改HTTP/1.1端口号,默认是8080 */ <Connector port="9527" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort原创 2022-02-07 10:54:15 · 245 阅读 · 0 评论 -
nginx开发从入门到精通
http://tengine.taobao.org/book/index.html原创 2022-01-14 13:27:35 · 1524 阅读 · 0 评论 -
vs2013调试nginx
nginx下载地址1、 新建文件夹以及文件2、 修改ngx_module.c文件,将新增的文件名加进去:代码#include <ngx_config.h>#include <ngx_core.h>#include <ngx_http.h>static ngx_int_t ngx_ext_sunx_handler(ngx_http_request_t *r);static char* ngx_ext_sunx(ngx_conf_t *cf, n原创 2022-01-13 17:27:25 · 1455 阅读 · 0 评论 -
nginx:TIME_WAIT过多或者CLOSE_WAIT过多的状态
1 起因线上服务器nginx日志运行一段时间后,会报如下错误:1024 worker_connections are not enough一般做法是修改worker_connections。但实际上:该服务是用于时间比较短的连接里,并且一天最多才4000个请求。不可能会耗尽worker_connections。除非每次连接都没有释放对应的连接。‘shell>netstat -n | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]转载 2021-10-12 16:37:32 · 3154 阅读 · 0 评论 -
Nginx 定义自己的 http 模块
一、config文件编写Nginx提供了一种简单的方式将第三方的模块编译到Nginx中。首先把源代码文件全部放到一个目录下,同时在该目录中编写一个文件用于通知Nginx如何编译本模块,这个文件名必须为config。然后,在configure脚本执行时加入参数–add-module=PATH(新模块源代码以及config文件存放目录),就可以在编译Nginx之前把新模块添加进去,然后再编译(make)即可。config文件格式 config文件其实是一个可执行的Shell脚本,如果只想开发一个HT转载 2021-09-02 17:43:06 · 572 阅读 · 0 评论