目录
nginx简介
- nginx(2002年开发,2004年10才出现第一个版本0.1.0):web服务器,市场份额,排在第二位,Apache(1995)第一位。
- web服务器,反向代理,负载均衡,邮件代理,运行时需要的系统资源比较少,所以经常被称呼为轻量级服务器。
- nginx是一个俄罗斯人(Igor Sysoev),C语言(不是c++)开发的,并且开源了。
- nginx号称并发处理百万级别的TCP连接,非常稳定,热部署(运行的时候能升级),高度模块化设计,自由许可证。
- 很多人开发自己的模块来增强nginx,第三方业务模块(c++开发), OpenResty。
为什么选择nginx
- 单机10万并发,而且同时能够保持高效的服务,epoll这种高并发技术好处就是:高并发只是占用更多内存就能做到。
- 内存池,进程池,线程池,事件驱动等等。
- 学习研究大师级的人写的代码,是一个程序开发人员能够急速进步的最佳途径。
安装nginx,搭建web服务器
【安装环境配置】
- 要求linux 内核版本为2.6或者以上,才支持epoll技术。
- 可以使用uname -a查看版本信息
- gcc编译器,g++编译器
- pcre库:函数库;支持解析正则表达式;
- zlib库:压缩解压缩功能
- openssl库:ssl功能相关库,用于网站加密通讯
nginx源码下载以及目录结构简单认识
【nginx源码下载及版本介绍】
- nginx官网 http://www.nginx.org
- nginx的几种版本
- mainline版本:版本号中间数字一般为奇数。更新快,一个月内就会发布一个新版本,最新功能,bug修复等,稳定性差一点;
- stable版本:稳定版,版本号中间数字一般为偶数。经过了长时间的测试,比较稳定,商业化环境中用这种版本;这种版本发布周期比较长,几个月;
- Legacy版本:遗留版本,以往的老版本;
- 安装方式:
- 现在有这种二进制版本:通过命令行直接安装。
- 灵活:要通过编译 nginx源码手段才能把第三方模块弄进来。
【目录结构】
- auto / :编译相关的脚本,可执行文件configure一会会用到这些脚本
- cc / : 检查编译器的脚本
- lib / : 检查依赖库的脚本
- os / : 检查操作系统类型的脚本
- type / : 检查平台类型的脚本
- CHANGES : 修复的bug,新增加的功能说明
- CHANGES.ru : 俄语版CHANGES
- conf / : 默认的配置文件
- configure : 编译nginx之前必须先执行本脚本以生成一些必要的中间文件
- contrib / : 脚本和工具,典型的是vim高亮工具
- vim / : vim高亮工具 (cp -r contrib/vim ~/ .vim)
- html / : 欢迎界面和错误界面相关的html文件
- man / : nginx帮助文件目录
- src / : nginx源码目录
- core : 核心代码
- event : event(事件)模块相关代码
- http : http(web服务)模块相关代码
- mail : 邮件模块相关代码
- os : 操作系统相关代码
- stream : 流处理相关代码
- objs/:执行了configure生成的中间文件目录
- ngx_modules.c:内容决定了我们一会编译nginx的时候有哪些模块会被编译到nginx里边来。
- Makefile:执行了configure脚本产生的编译规则文件,执行make命令时用到
【安装】
- 编译的第一步:用configure来进行编译之前的配置工作
- 查看配置帮助命令 :./configure --help
- ./configure
- --prefix:指定最终安装到的目录(nginx以下文件的根目录):默认值 /usr/local/nginx
- --sbin-path:用来指定可执行文件目录:默认的是prefix指定的目录下的sbin/ nginx
- --conf-path:用来指定配置文件目录:默认的是prefix指定的目录下的conf/nginx.conf
- 用make来编译,生成了可执行文件 :make (在objs/目录下生成 nginx )
- 根目录下,用make命令开始安装 make install
- 在安装目录下的sbin目录中执行:./nginx
【安装详情可参考】:Nginx学习笔记之编译出适合自己的Nginx