自娱自乐的代码人,专注Java、c、php

GIT:https://github.com/zhuli InitPHP开源框架:http://initphp.com

转载和积累系列 - 分析服务器日志常用命令

1、查看有多少个IP访问:awk '{print $1}' log_file|sort|uniq|wc -l2、查看某一个页面被访问的次数:grep "/index.php" log_file | wc -l3、查看每一个IP访问了多少个页面:awk '{++S[$1]} EN...

2017-06-12 12:55:38

阅读数:671

评论数:0

Nginx源码分析 - 实战篇 - 编写一个挂载到阶段处理的模块

HTTP模块篇,我们讲过Nginx的HTTP阶段处理 《Nginx源码分析 - HTTP模块篇 - ngx_http_core_run_phases函数和HTTP模块的阶段处理PHASE handler》我们代码在《Nginx源码分析 - 实战篇 - 编写一个自定义的模块》的基础上,将定义一个回调...

2017-06-08 13:19:07

阅读数:1578

评论数:0

Nginx源码分析 - 实战篇 - 编写一个自定义的模块

Nginx源码分析 - 实战篇 - 编写一个自定义的模块

2017-06-08 12:03:28

阅读数:1079

评论数:0

Nginx源码分析 - HTTP模块篇 - ngx_http_core_run_phases函数和HTTP模块的阶段处理PHASE handler

上一章我们讲解了HTTP request的解析过程。我们基本知道了Nginx是如何解析HTTP的行和头。这一章我们主要讲解Nginx的阶段处理(PHASE 状态机实现)。阶段处理的概念如何理解,我举个例子:一个HTTP请求过来,除了解析HTTP的行和头外,还需要解析URI的rewrite、接受HT...

2017-06-07 14:49:26

阅读数:1433

评论数:0

Java深入 - jdk8特性

1. 接口提供默认方法Java 8允许我们给接口添加一个非抽象的方法实现,只需要使用 default关键字即可public interface Test { int get(); /* JAVA8 接口默认方法*/ default int getVal(int ...

2017-04-27 14:03:42

阅读数:780

评论数:0

Nginx源码分析 - HTTP模块篇 - ngx_http_wait_request_handler函数和HTTP Request解析过程

这一章主要讲解read事件的核心处理函数:ngx_http_wait_request_handler和ngx_http_process_request_linengx_http_init_connection 初始化客户端连接从上一章知道,ngx_event_accept第一次建立连接的时候,会调...

2017-01-05 20:59:43

阅读数:2156

评论数:0

Nginx源码分析 - HTTP模块篇 - ngx_http_optimize_servers函数和TCP连接建立过程

上一章,我们讲解了HTTP模块是如何初始化的。这一章节,主要讲解监听套接字初始化函数ngx_http_optimize_servers和Nginx整个连接的过程监听套接字初始化函数ngx_http_optimize_serversngx_http_optimize_servers主要处理Nginx...

2016-12-18 19:11:42

阅读数:1558

评论数:0

Nginx源码分析 - HTTP模块篇 - ngx_http_block函数和HTTP模块的初始化

前面几章整理了Nginx的事件模块,这一章开始整理HTTP模块。HTTP模块的初始化工作,都在src/http/nginx_http.c 中的ngx_http_block函数中进行的。http模块的配置在看nginx_http_block之前,我们还必须看一下nginx.conf中 HTTP大模块...

2016-12-17 10:14:52

阅读数:1352

评论数:0

Nginx源码分析 - Event事件篇 - epoll事件模块

这一篇主要讲解一下epoll事件模型。Nginx支持多种事件模型:epoll/pool/select/kqueue等。epoll比较常用,我们也比较熟悉。Nginx的epoll事件模块在/event/module/ngx_epoll_module.c

2016-11-03 19:30:33

阅读数:1913

评论数:0

Nginx源码分析 - Event事件篇 - Event模块的进程初始化ngx_event_process_init

前面一篇我们讲解了《Nginx源码分析 - Event事件篇 - Event模块和配置的初始化 》    ,了解了整个Event模块分为:ngx_events_module 事件模块 、ngx_event_core_module 事件核心模块 和 epoll/queue/win32_select事...

2016-09-15 17:59:02

阅读数:2169

评论数:1

Nginx源码分析 - Event事件篇 - Event模块和配置的初始化

Event的模块和配置的初始化,必须得结合我们讲过的两篇文章:《Nginx源码分析 - 主流程篇 - 模块的初始化》     和  《Nginx源码分析 - 主流程篇 - 解析配置文件》   前面我们讲解了模块的初始化以及核心模块的配置文件的解析。而Event的配置解析会比核心模块解析会复杂一些,...

2016-09-04 20:04:31

阅读数:2197

评论数:0

推荐算法和机器学习系列 - 协同过滤推荐算法和余弦相似性算法

编者按】推荐系统在各种系统中广泛使用,推荐算法则是其中最核心的技术点,InfoQ接下来将会策划系列文章来为读者深入介绍。推荐算法综述分文五个部分,本文作为第一篇,将会简要介绍推荐系统算法的主要种类。其中包括算法的简要描述、典型的输入、不同的细分类型以及其优点和缺点。在第二和第三篇中,我们将会详细介...

2016-08-30 14:21:08

阅读数:3430

评论数:1

推荐算法和机器学习系列 - 推荐算法综述

【编者按】推荐系统在各种系统中广泛使用,推荐算法则是其中最核心的技术点,InfoQ接下来将会策划系列文章来为读者深入介绍。推荐算法综述分文五个部分,本文作为第一篇,将会简要介绍推荐系统算法的主要种类。其中包括算法的简要描述、典型的输入、不同的细分类型以及其优点和缺点。在第二和第三篇中,我们将会详细...

2016-08-30 14:14:04

阅读数:1138

评论数:0

Nginx源码分析 - Event事件篇 - Nginx的Event事件模块概览

前一章,我们讲解了《Nginx源码分析 - 主流程篇 - 多进程的惊群和进程负载均衡处理 》  中实际上已经涉及到了一部分事件模块的概念。细心的可以发现,Nginx的事件都是由nginx_event.c文件中的ngx_process_events_and_timers进程事件分发器这个函数开始的。...

2016-08-22 19:30:35

阅读数:3251

评论数:0

Nginx源码分析 - 主流程篇 - 多进程的惊群和进程负载均衡处理

Linux2.6版本之前还存在对于socket的accept的惊群现象。之后的版本已经解决掉了这个问题。惊群是指多个进程/线程在等待同一资源时,每当资源可用,所有的进程/线程都来竞争资源的现象。Nginx采用的是多进程的模式。假设Linux系统是2.6版本以前,当有一个客户端要连到Nginx服务器...

2016-08-21 14:05:28

阅读数:5375

评论数:1

Nginx源码分析 - 主流程篇 - 多进程实现

默认情况下,Nginx都是多进程的运行模式。Nginx和Memcached不一样,是多进程的模式。采用多进程模式最大的好处:1. 每个进程的资源独立2. 不需要添加各种繁琐的锁了Nginx多进程实现的流程图

2016-08-21 09:15:33

阅读数:2104

评论数:0

Nginx源码分析 - 主流程篇 - 解析配置文件

Nginx源码中比较重要的一块就是配置文件的解析。一般是解析/usr/local/nginx/conf/nginx.conf文件中的配置信息。前一篇文章,我们介绍了Nginx的模块化。Nginx的功能模块都是通过cycle->modules 模块进行管理的。而每个模块都会有自己的配置文件。

2016-07-14 18:47:30

阅读数:3698

评论数:2

Nginx源码分析 - 主流程篇 - 模块的初始化

Nginx是高度模块化的,各个功能都会封装在模块中。例如core模块、HTTP模块等。也可以自定义模块。这一篇文章主要讲解模块的初始化。后续会有一篇文章教你如何编写Nginx的模块。Nginx实现模块管理的代码主要在:/src/core/ngx_module.c文件中。模块的数据结构结构体ngx_...

2016-07-13 17:03:10

阅读数:3338

评论数:1

Nginx源码分析 - 主流程篇 - 全局变量cycle初始化

Nginx的大部分初始化工作主要围绕一个类型为ngx_cycle_t类型的全局变量(cycle)展开。本文主要讲解cycle的数据结构以及初始化过程中干了什么事情。 cycle的初始化过程在/src/core/cycle.c文件中。 数据结构 ngx_cycle_t的数据结构 /** * Ngi...

2016-07-11 17:54:21

阅读数:2206

评论数:0

Nginx源码分析 - 主流程篇 - 平滑重启和信号控制

平滑重启 上一篇文章我们分析了Nginx的启动流程。其中ngx_add_inherited_sockets主要用于继承Socket文件句柄。 Nginx有平滑重启的功能,通过平滑重启,可以让用户无感知并且不中断。 #平滑重启 sudo kill -HUP `cat /usr/local/ngi...

2016-07-06 18:56:36

阅读数:2308

评论数:0

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