Nginx源码学习与思考 一
从今天开始,请跟随我一块来学习Nginx源码吧,我相信这将是一段快乐并痛苦的过程,但是你我都将获取属于自己的快乐的。我学习的对象主要是两个:Nginx源码,深入理解Nginx,后者作为参考书,这本书写的很用心,建议大家可以去看看,我是看过一遍的。现在主要是把心得写出,同时在最后,我会用前面理解的知识做一个真实可用的项目来,尽力做到1.2wQPS,在一台4核8G的i5的服务器上。整个程序的处理时间尽量保证在100ms内有返回。
那我们就开始一段愉快的旅程吧。
初识Nginx
一句话来说Nginx:它是基于事件驱动的架构并能够并发处理百万级的TCP接连(请求)的web服务器;正如作者所说:“选择Nginx的核心理由就一个:能支持高并发请求的同时保持高效的服务”。
准备工作
环境要求有如下几点:
1. linux内核 version最好在2.6及以上,这样才能使用epoll功能,用uname -a;
2. nginx安装必备软件环境;
2.1 gcc: apt-get install gcc;apt-get install gcc-c++
2.2 pcre: apt-get install pcre
2.3 zlib: apt-get install zlib
2.4 openssl: apt-get install openssl
3. linux内核参数优化:请按照自己的需求来设备;内核参数文件 /etc/sysctl.conf, 生效 sysctl -p.
Nginx 安装
./configure --prefix=/home/xiawenxing/nginx \ //nginx所在目录
--with-pcre=/home/xavierxia/package/pcre-8.35 \ //添加正则
--with-http_ssl_module \
--with-http_stub_status_module \ //统计nginx运行信息
--with-debug \ //用于调试(生产环境去掉)
--add-module=/home/xiawenxing/rtb-c //c项目
make -j2
make install
浙公网安备 33010602011771号