ygmdream
为人处世!
展开
-
nginx调试日志
这一系列的文章还是在09年写的,存在电脑里很久了,现在贴出来。顺序也不记得了,看到那个就发那个吧,最近都会发上来。欢迎转载,但请保留链接:http://lenky.info/,谢谢。第一:打开debug模式进行编译,简单操作如下:sudo ./configure –with-debugsudo makesudo make install应注意–with-debug选项,记得打开转载 2014-06-06 12:51:05 · 5011 阅读 · 0 评论 -
nginx日志文件切割
参考:http://www.cnblogs.com/benio/archive/2010/10/13/1849935.html偶然发现access.log有21G大,所以将其切割。Nginx 是一个非常轻量的 Web 服务器,体积小、性能高、速度快等诸多优点。但不足的是也存在缺点,比如其产生的访问日志文件一直就是一个,不会自动地进行切割,如果访问量很大的话,将 导致转载 2014-06-06 13:06:58 · 662 阅读 · 0 评论 -
Nginx模块开发(15)—日志模型
参考:http://cjhust.blog.163.com/blog/static/175827157201242182635874/转载 2014-06-06 13:20:24 · 2635 阅读 · 0 评论 -
nginx 源码学习笔记(一)——初识nginx helloworld模块
参考:http://blog.csdn.net/lengzijian/article/details/7349933转载 2014-06-06 13:52:03 · 626 阅读 · 0 评论 -
nginx 源码学习笔记(二)——nginx精粹-模块
看了一点nginx的源码发现,nginx的模块思想确实吸引了我,也不得不佩服俄罗斯人的想问题方式,要分析nginx源码,首先要搞懂的就是nginx的模块思想以及相关的数据结构。还记得我们上一次写的helloworld模块么?里面涉及最重要的数据就是ngx_module_t指针数组,这个指针数组包含了当前编译版本支持的所有模块,这个指针数组定义实在自动脚本生成的objs/ngx_module转载 2014-06-06 14:03:18 · 655 阅读 · 0 评论 -
nginx的所有模块如何起来的-函数调用顺序
ngx_init_cycle中先调用每个core模块的create_conf创建存放配置文件的结构体;ngx_conf_parse的ngx_conf_handler中即调用所有模块[type!=NGX_CONF_MODULE]的ngx_command_t中的每个函数解析配置文件;执行每个模块的init_module函数执行每个core模块的init_conf存储配置信息;调用所原创 2014-06-10 21:35:48 · 3298 阅读 · 0 评论 -
nginx 源码学习笔记(三)——nginx精粹-模块
下面开始真正"nginx之旅",屏住呼吸吧!首先找好入手点,对于nginx的入手点就是ngx_module_t结构,他的声明在src/core/ngx_conf_file.h中(我的版本nginx-1.0.13)[cpp] view plaincopyprint?#define NGX_MODULE_V1 0, 0,转载 2014-06-06 14:21:28 · 562 阅读 · 0 评论 -
nginx 源码学习笔记(三.1)——四种类型结构体中的函数何时调用
static ngx_core_module_t ngx_core_module_ctx = { ngx_string("core"), ngx_core_module_create_conf, ngx_core_module_init_conf};原创 2014-06-06 14:42:04 · 700 阅读 · 0 评论 -
只有客户的url匹配时候才执行模块的处理函数
初识nginx---实现一个简单的http模块 Nginx是由俄罗斯软件工程师Igor Sysoev开发的一个高性能的HTTP和反向代理服务器,具备IMAP/POP3和SMTP服务器功能。Nginx最大的特点是对高并发的支持和高效的负载均衡,在高并发的需求场景下,是Apache服务器不错的替代品。目前,包括新浪、腾讯等知名网站已经开始使用Nginx作为Web应用服务器,淘宝开发的t转载 2014-06-08 12:03:10 · 749 阅读 · 0 评论 -
Nginx学习之十-超时管理(定时器事件)
http://blog.csdn.net/xiajun07061225/article/details/9284543转载 2014-07-18 16:55:36 · 565 阅读 · 0 评论 -
linux 守护进程编写
http://blog.csdn.net/zg_hover/article/details/2553321 linux编程-守护进程编写 守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待 处理某些发生的事件。守护进程是一种很有用的进程。 Linux的大多数服务器就是用守护进程实现的。比如,Internet服务器i转载 2014-06-10 13:19:15 · 578 阅读 · 0 评论 -
socketpair理解
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://liulixiaoyao.blog.51cto.com/1361095/533469 今天跟人谈到socketpair的问题,晚上回来写了个程序验证下自己的猜测! 先说说我的理解:socketpair创建了一对无名的套接字描述符(只能在AF_UNIX域中转载 2014-06-13 10:42:57 · 520 阅读 · 0 评论 -
nginx大体框架了解
【1】master守护进程作为管理进程, worker即是工作进程。常用模式为“1个master进程+多个worker进程+配置了缓存时还会有缓存加载器进程(cache loader)和缓存管理器进程(cache manager)”。原创 2014-06-14 18:16:03 · 711 阅读 · 0 评论 -
nginx的log使用
1)打开debug模式即使能库中的ngx_log_debugx的调用,如下编译./configure –with-debug 2)在/usr/local/nginx/conf/nginx.conf中设置日志级别error_log logs/error.log info;3)了解日志级别nginx支持的日志级别主要有emerg、alert、crit、error、warn、原创 2014-06-14 18:19:23 · 8841 阅读 · 0 评论 -
nginx中对recv-send的封装
#define ngx_recv ngx_io.recv#define ngx_recv_chain ngx_io.recv_chain#define ngx_udp_recv ngx_io.udp_recv#define ngx_send ngx_io.send#define ngx_send_chain原创 2014-06-16 11:26:15 · 3101 阅读 · 0 评论 -
配置项结构体内存申请与初始化过程
1、每个基于NGX_CORE_MODULE模块的新类型模块一开始从内存池获得内存。那么内存池在哪分配的呢?来自cf->pool2、ngx_http_core_moudle模块变量定义时会给下面【函数指针】设置回调函数的create_main_conf create_srv_confcreate_loc_conf回调函数的功能是为存储配置项的结构体分配内存并返原创 2014-06-12 11:00:19 · 1254 阅读 · 0 评论 -
ngx_buf_t使用
3.7.2 将内存中的字符串作为包体发送调用ngx_http_output_filter方法即可向客户端发送HTTP响应包体,下面查看一下此方法的原型,如下所示。ngx_int_t ngx_http_output_filter(ngx_http_request_t *r, ngx_chain_t *in); ngx_http_output_filter的返回值在myte转载 2014-06-17 14:18:15 · 2681 阅读 · 1 评论 -
如何发送磁盘中的文件(1)
http://book.51cto.com/art/201303/386678.htm3.8.1 如何发送磁盘中的文件(1)发送文件时使用的是3.7节中所介绍的接口。例如:ngx_chain_t out; out.buf = b; out.next = NULL; return ngx_http_output_filter(r, &out); 两者不转载 2014-06-17 14:15:01 · 903 阅读 · 0 评论 -
图解Nginx 中的4级指针
参考:http://blog.chinaunix.net/uid-27767798-id-3840094.html nginx的所有配置结构体全部放在一个cycle的四级指针中即(void ****conf_ctx;图中ctx即为conf_ctx),本文就具体分析一下每级指针究竟指向的是什么,下图表示了这个四级指针每一级的指向,图中虚拟地址模拟转载 2014-06-17 12:44:41 · 1562 阅读 · 0 评论 -
nginx keepalive连接回收机制
nginx keepalive连接回收机制=================================================================并发量大的时候,一些keepalive的连接会被新连接给挤掉关于这个问题,切入点在ngx_get_connection,并发足够大时,使连接池迅速耗尽,从代码角度上看:c = ngx_cycle->free_转载 2014-07-26 21:23:10 · 2035 阅读 · 0 评论 -
定时器模型
参考:http://cjhust.blog.163.com/blog/static/175827157201348112639361/转载 2014-06-18 11:19:03 · 1130 阅读 · 0 评论 -
事件机制
每个事件都由ngx_event_t结构体来表示,它的成员data一般指向ngx_connection_t连接对象,开启文件异步I/O时,它可能会指向ngx_event_aio_t结构体。对于ngx_event_t结构体而言最核心的部分是handler回调方法,供用户设置,当对应的事件发生时回调用户设置的函数。ngx_connection_t表示nginx被动接受连接时对应的结构体,它的成员da转载 2014-06-14 18:37:56 · 819 阅读 · 0 评论 -
nginx的定时器-框架
参考:http://blog.csdn.net/fjslovejhl/article/details/8722427还是早就想写这篇了,只不过被老板安排写网站去了,一直没有腾出时间。。。在nginx中有两种事件类型,其中一种的引发点是epoll,也就是通过epoll来获取事件的源头,另外一种就是定时时间。。在前面的代码中就已经遇到过了,例如当nginx获取到一个客户端的连接时,转载 2014-06-18 11:29:37 · 912 阅读 · 0 评论 -
ip地址/掩码得到ip范围
Linux下IP地址转换函数,可以在将IP地址在“点分十进制”和“整数”之间转换而且,inet_pton和inet_ntop这2个函数能够处理ipv4和ipv6。//获得点分十进制对应的整数uint32_t netmask = 0;uint32_t ip = 0;inet_pton(AF_INET, (char *)address->mask, &n原创 2014-07-10 19:48:03 · 3212 阅读 · 0 评论 -
Nginx打开目录浏览功能(autoindex)
http://blog.licess.com/nginx-autoindex/转载 2014-07-28 17:28:12 · 1203 阅读 · 0 评论 -
Nginx Proxy Cache的slab page内存缓存机制
参考:http://bollaxu.iteye.com/blog/875163转载 2014-06-20 13:50:20 · 1019 阅读 · 0 评论 -
Nginx内存管理及数据结构浅析–共享内存的实现
参考:http://www.colaghost.net/web-server/246nginx是多进程模型,在许多场景我们可能需要跨进程共享数据,考虑到这个可能性,nginx本身也提供了共享内存这方面的接口。ngx_int_t ngx_shm_alloc(ngx_shm_t *shm);这个是nginx中关于分配共享内存最底层的接口了,它实际上就是直接调用mmap进行共享内存的分配转载 2014-06-19 14:56:01 · 1972 阅读 · 0 评论 -
添加事件到epoll
给客户端回复sh原创 2014-08-06 13:20:39 · 833 阅读 · 0 评论 -
HTTPS协议
HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议 要比http协议安全HTTPS解决的问题:1 . 信任主机的问题. 采用https 的server 必须从CA 申请一个用于证明服务器用途类型的证书. 改证书只有用于对应的server 的时候,客户度才信任次主机. 所以目前所有的银行系统网站,关键部分应用都是https 的. 客户通过信任该证书,从而信转载 2014-08-01 10:18:29 · 662 阅读 · 0 评论 -
radius源码下载
http://download.chinaunix.net/download/0001000/5.shtml转载 2014-08-07 22:48:36 · 1484 阅读 · 0 评论 -
UNIX Domain Sockets
socket API原本是为网络通讯设计的,但后来在socket的框架上发展出一种IPC机制,就是UNIX Domain Socket。虽然网络socket也可用于同一台主机的进程间通讯(通过loopback地址127.0.0.1),但是UNIX Domain Socket用于IPC更有效率:不需要经过网络协议栈,不需要打包拆包、计算校验和、维护序号和应答等,只是将应用层数据从一个进程拷贝到另一个转载 2014-08-23 10:30:04 · 1124 阅读 · 0 评论 -
nginx定时器处理AGAIN
说明:注意定时器超时时候执行的事件的函数是什么;当发送数据时候,未发送完毕,产生了EGAIN则设个定时器,如果定时器超时了则认为失败了(这么久都发不出去,认为socket有问题了)如果写触发的函数和定时器触发的函数是同一个,只需要在此函数刚刚进去判断是否定时器超时,如果超时则关闭socket,再判断是否之前设置了定时器,如果设置了则取消定时器。当接收数据时候,如果未收到指定长度原创 2014-08-27 08:52:09 · 915 阅读 · 0 评论 -
kerberos安装配置
安装步骤: 1.下载krb5-1.9 http://web.mit.edu/kerberos/dist/krb5/1.9/krb5-1.9-signed.tar 2.解压 tar -xvf krb5-1.9.signed.tar 生成krb5-1.9.tar.gz 和krb5-1.9.tar.gz.asc 继续解压tar zxvf krb5-1.9.tar.gz转载 2014-08-28 12:39:54 · 1019 阅读 · 0 评论 -
让nginx产生core文件
自己写的nginx模块,有子进程异常退出的情况,我希望配置nginx,可以产生core文件。我参照nginx文档,配置如下。worker_rlimit_core 102400;working_directory /;转载 2014-08-29 10:09:34 · 4302 阅读 · 0 评论 -
利用IPsec实现网络安全之五(Kerveros实现身份验证)
作者:许本新上文说到利用证书服务实现IPSEC验证,今天接着说利用Kerberos协议实现IPsec验证。在介绍操作之间我们先了解一下什么是kerberos协议。kerberos是由MIT开发的提供网络认证服务的系统。它可用来为网络上的各种server提供认证服务,使得口令不再是以明文方式在网络上传输,并且联接之间通讯是加密的。它和PKI认证的原理不一样,PKI使用公钥体制(不对称密码体制转载 2014-08-30 18:13:35 · 2534 阅读 · 0 评论 -
chroot
chroot chroot[--help][--version][目的目录][执行指令...][功能]把根目录换成指定的目的目录.[描述]‘chroot’使用一个指定的根目录运行命令,在大多数系统上,仅限于超级用户可以做这个动作。通常情况下,搜索文件名开始于根目录结构。比如‘/’。‘chroot’命令可以更改根路径到新的指定的路径。使用chroot,实现了如下等功转载 2014-10-10 09:10:34 · 1146 阅读 · 0 评论 -
让nginx支持文件上传的几种模式
文件上传的几种不同语言和不同方法的总结。http://blog.csdn.net/langeldep/article/details/9628819第一种模式 : PHP 语言来处理这个模式比较简单, 用的人也是最多的, 类似的还有用 .net 来实现, jsp来实现, 都是处理表单。只有语言的差别, 本质没有任何差别。file.php 文件内容如下 :转载 2014-10-17 18:53:34 · 1819 阅读 · 0 评论 -
高性能WEB开发 nginx HTTP服务器篇
第一篇:HTTP服务器 因tomcat处理静态资源的速度比较慢,所以首先想到的就是把所有静态资源(JS,CSS,image,swf) 提到单独的服务器,用更加快速的HTTP服务器,这里选择了nginx了,nginx相比apache,更加轻量级, 配置更加简单,而且nginx不仅仅是高性能的HTTP服务器,还是高性能的反向代理服务器。 目前很多大型网站都使用了ngin转载 2014-10-17 19:16:22 · 690 阅读 · 0 评论 -
nginx源码安装
nginx源码安装 安装环境: 操作系统:Ubuntu 12.04 Nginx: V1.4.2 PCRE: V8.33 zlib: V1.2转载 2014-10-18 10:18:54 · 1459 阅读 · 0 评论 -
Nginx + FastCGI 程序(C/C++)-1
参考:http://blog.csdn.net/allenlinrui/article/details/19419721转载 2014-11-01 20:30:47 · 1260 阅读 · 0 评论