自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 nginx源码分析之启动流程---主框架

ngx_master_process_cycle该方法展示了master进程是如何工作的1 载入信号量master不需要处理网络事件,只需要通过管理worker进程来实现重启服务,平滑升级,更换日志文件,配置文件等等功能。nginx检查以下标志位: sigemptyset(&set); sigaddset(&set, SIGCHLD); sigadd...

2019-05-03 18:27:59 247

原创 nginx关于add_header的坑

一 场景1nginxA作为反向代理,nginxB作为web服务。其中 nginxA 的日志格式需要打印上游返回的Server头:xes-app : $http_upstream_server另外A的location配置如下: location /servertag { default_type text/plain; p...

2020-08-06 10:11:54 36032

原创 nginx源码分析之启动流程---http框架

一 http框架在哪里启动在nginx源码分析之启动流程—主框架中,我们知道会调用ngx_conf_parse来解析配置文件,该函数中会通过一个无限的for循环,调用ngx_conf_read_token来一行行的解析。解析完成之后又会调用ngx_conf_handler来进一步处理该指令,而在ngx_conf_handler中,会遍历ngx_modules[]数组,找到对该函数感兴趣的模块,...

2019-07-08 00:27:54 330

原创 nginx源码分析----解析upstream配置

nignx解析配置文件时,当遇到一下配置时,会做哪些事情?upstream test.balancer.com { 1.1.1.1:80; 2.2.2.2:80;}一、 存储upstream配置的三大结构体首先需要解决upstream配置的存储问题,nginx是通过ngx_http_upstream_main_conf_t,ngx_http_upstream_srv_conf...

2019-06-30 19:25:37 1119

原创 Linux系统编程:signal、sigaction、sigpending、sigprocmask函数

一、signal作用:设置信号处理方式,当进程接收到信号时,指定特定的handler方法来处理信号(只起一次作用)。头文件 #include<signal.h>定义函数 void (*signal(int signum,void(* handler)(int)))(int);函数说明 signal()会依参数signum 指定的信号编号来...

2019-06-26 20:48:46 289

原创 Linux系统编程:raise函数、wait函数、waitpid函数

wait()函数说明wait()函数用于使父进程(也就是调用wait()的进程)阻塞,直到一个子进程结束或者该进程接收到了一个指定的信号为止。如果该父进程没有子进程或者它的子进程已经结束,则wait()函数就会立即返回。waitpid()函数说明:waitpid()的作用和wait()一样,但它并不一定要等待第一个终止的子进程(它可以指定需要等待终止的子进程),它还有若干选项,如可提...

2019-06-18 20:58:29 788

原创 Linux系统编程:kill函数

参数:pid:可能选择有以下四种pid大于零时,pid是信号欲送往的进程的标识。pid等于零时,信号将送往所有与调用kill()的那个进程属同一个使用组的进程。pid等于-1时,信号将送往所有调用进程有权给其发送信号的进程,除了进程1(init)。pid小于-1时,信号将送往以-pid为组标识的进程。sig:准备发送的信号代码,假如其值为零则没有任何信号送出,但是系统会执行错误检查...

2019-06-17 20:51:04 425

原创 orange的安装

一、 安装lor # git clone https://github.com/sumory/lor.git # cd lor # make install二、 导入orange的数据库orange项目install文件下有orange的数据库sql文件,选择最新版本导入到本地mysql git clone https://github.com/sumory/orange.git...

2019-06-03 10:27:01 3376

原创 nginx源码分析四----重要的函数

与处理请求有关ngx_http_output_filter作用: 发送HTTP响应的包体内容位置: ngx_http_core_module.c原型:ngx_int_tngx_http_output_filter(ngx_http_request_t *r, ngx_chain_t *in){ ngx_int_t rc; ngx_connection...

2019-05-25 21:18:30 313

原创 niginx源码分析二----基础数据结构

ngx_str_t

2019-05-25 21:06:54 112

原创 nginx源码分析一----全局变量&宏定义

1 ngx_cycle

2019-05-25 21:04:45 300

原创 nginx源码分析五---- 重要的回调函数

异步非阻塞的实现关键nginx能保持全异步的事件驱动框架,关键在于各种callback函数,这些增加了编码的难度,但是却能够保证nginx进程在执行的过程中,不会因为一个阻塞的调用导致进程进入休眠状态。ngx_http_client_body_handler_pt描述: nginx在接受完完整的请求body后回调该函数。调用: ngx_http_read_client_request_bo...

2019-05-25 20:52:48 477

原创 nginx源码分析三----高级数据结构

一、 与框架相关ngx_cycle_tstruct ngx_cycle_s {//保存存储所有模块的配置项的结构体指针//之所以是4级指针,是因为conf_ctx首先是一个数组//然后存储的元素是指针,该指针又指向另外一个指针数组void ****conf_ctx;//内存池ngx_pool_t *pool;/* 在还...

2019-05-25 20:22:47 225

原创 php中display_errors的坑

问题描述:公司线上出现一个问题:后端的服务是nginx+php模式,php程序已经内存溢出了,但是通过nginx访问的时候,返回的还是HTTP 200 OK。问题原因:经过查阅资料发现,在php-fpm的运行模式下,错误信息的显示是和php的配置display_errors有关。关于display_errors的配置有三处,分别为php-fpm.conf,php.ini以及程序里通过ini...

2019-04-18 11:09:15 9121

原创 C语言基础: printf ,sprintf , fprintf

printf : 往标准屏幕输出sprintf :输出到指定的字符数组fprintf : 输出到指定文件示例代码:int main () { int d = 10; char a = 'a'; char buf[] = "hello"; char dst[100]; printf("d=%d,a=%c,buf=%s",d,a,buf); sprintf(dst,"d=%d,a...

2019-04-15 23:29:38 215

原创 C语言基础: 标准字符串输入输出函数

一 标准输入函数scanf,gets,fgets()scanf :1 不能接收空格,tab、换行等字符示例代码: char buf[100]]; printf("请输入字符串buf:\n"); //输入 hello world scanf("%s",buf); printf("buf=%s",buf); //buf=hello, ...

2019-04-14 20:41:45 2128

原创 php问题记录

问题记录:1 打开网关后台监控,返回500内部错误。解决方法:1 修改php.ini:将memory_limit = 50M 修改为了 500Mphp-fpm参数设置:将pm.max_children由537个修改为了20个...

2019-02-25 15:42:18 134

原创 nginx总结第四章----nginx模块与指令详解

四 nginx模块官方提供了5个类型的模块:核心模块、配置模块、事件模块、http模块、mail模块。 配置模块主要负责解析nginx.conf文件,是其他模块的基础,该类模块中只有一个ngx_conf_module模块; 核心模块主要负责定义除配置模块之外的其他模块,该类模块中有6个核心模块。 ngx_mail_module负责定义mail模块; ...

2019-02-17 13:01:31 767

原创 nginx总结

一 安装与配置nginx定位:web服务器,负载均衡器(反向代理服务器),缓存服务器,电子邮件服务器安装nginx编译第三方模块eg: nginx编译ngx_http_upstream_consistent_hash模块: 查看当前版本的nginx的编译配置: /usr/local/nginx/sbin/nginx -V--------- 下载ngx_http_upst...

2019-02-14 15:48:59 1797

转载 nginx各buffering的配置

一  接收客户端client请求是的buffer配置    client_header_buffer_size    large_client_header_buffers     client_body_buffer_size    client_max_body_size 二 反向代理时的buffer配置 1 2 3 4 5 ...

2019-02-14 11:48:01 573

原创 nginx反向代理的流程

nginx反向代理的流程如下:1  proxy_request_buffering 指令:on表示nginx接收完完整的body后才和upstream建立连接,off则是先建立连接,然后发送请求的时,一遍从下游读取body,一遍往上游转发。默认情况下是on,即nginx先生成要发往上游的包体,然后才去和上游建立连接。这样做是为了不耽误时间,不占用较长时间连接。因为一边读一边转发的问题是,一...

2019-02-14 11:01:24 1719

原创 java中基本数据类型的存储与转换

一、java中八大基本数据类型所占内存大小 从小到大的排序分别是:(记住是11224488就容易记忆了)boolean:理论上只需要一个字符(1/8个字节),但实际按照一个字节处理。byte:1个字节(-128~127)char:2个字节short: 2个字节float:4个字节int:4个字节double:8个字节long:8个字节二、java的数据在内存

2017-10-06 15:03:42 410

原创 java线程池

一、在使用线程池之前先考虑几个问题: 1、线程的生命周期是怎样的? 线程分的状态有以下几个: new:新建状态 Runnable:可运行状态(就绪状态) Running:运行状态 Blocked:阻塞状态 Dead:死亡状态 注意以下几点: 1)、我们在new 一个线程之后,调用它的start()方法,这个时候线程并不

2017-09-30 21:01:02 209

原创 java实现二叉树的创建和各种遍历操作

本文是关于查找二叉树的创建和各种遍历操作。 import java.lang.Thread.State; import java.text.spi.NumberFormatProvider; import java.util.LinkedList; import java.util.Queue; import java.util.Stack;import javax.print.attri

2017-09-30 19:41:03 302

原创 二叉树的创建与遍历

import java.lang.Thread.State;import java.text.spi.NumberFormatProvider;import java.util.Stack;import javax.print.attribute.standard.NumberOfDocuments;import org.w3c.dom.NodeList;

2017-09-30 15:29:25 129

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除