LNMP企业架构实战
一、Nginx Web服务器简介
本节介绍 Nginx高性能Web服务器、 Nginx工作原理、安装配置及升级、 Nginx配置文件深入剖析、Nginx虚拟主机、 location案例演示、 Nginx rewire企业案例实战、Https安全Web服务器及 Nginx高性能集群实战等内容。
二、Nginx Web入门简介
Nginx(engine x)是一个高性能HTTP、反向代理、IMAP、POP3、SMTP服务器
Nginx是由 Igor Sysoev为俄罗斯访问量第二的 Rambler.ru站点开发的,第一个公开版本
发布于2004年10月4日。其源代码以类BSD许可证的形式发布,因它的稳定性、丰富的
功能集、示例配置文件和低系统资源的消耗而闻名
由于 Nginx的高性能、轻量级,目前越来越多的互联网企业开始使用 Nginx做为Web
服务器。据 Netcraft统计,在2017年4月份,世界上最繁忙的网站中有28.72%使用Nignx
作为其服务器或者代理服务器。
Nginx已经在众多流量很大的俄罗斯网站上使用了很长时间,这些网站包括 Yandex、Mai.Ru、 VKontakte以及 Rambler。目前互联网主流公司京东、360、百度、新浪、腾讯、阿里都在使用 nginx作为自己的Web服务器。
Nginx特点是占有内存少,并发能力强,事实上 Nginx的并发能力确实在同类型的网页
服务器中表现较好。
Nginx相对于 Apache优点如下:
1、高并发响应性能非常好,官方 Nginx处理静态文件并发5w/s;
2、负载均衡及反向代理性能非常强;
3、系统内存和CPU占用率低;
4、可对后端服务进行健康检查;
5、支持 PHP CGI方式和 FascCGI方式
6、可以作为缓存服务器、邮件代理服务器
7、配置代码简洁且容易上手
三、Nginx工作原理
Nginx Web服务器主要是由各种模块协同工作,模块从结构上分为核心模块,基础模
块和第三方模块,其中三类模块分别如下:
1、核心模块:HTTP模块、event模块和mail模块等
2、基础模块:Http access模块、Http FastCGI模块、Http proxy模块和HTTP rewrite模块
3、第三方模块: Http upstream request hash模块、 notice模块和 Http access key模块、 limit_req模块等
Nginx的模块从功能上分为如下三类
1、handlers(处理器模块):此类模块直接处理请求,并进行输出内容和修改 headers信息等操作, handlers处理器模块一般只能有一个
2、filters(过滤器模块):此类模块主要对其他处理器模块输出的内容进行修改操作,最后由 Nginx输出
3、proxies(代理类模块):此类模块是 Nginx的 Http upstream之类的模块,这些模块主要与后端一些服务比如 Fast CGI等进行交互,实现服务代理和负载均衡等功能。
Nginx由内核和模块组成,其中内核的设计非常微小和简洁,完成的工作也非常简单仅是通过查找配置文件将客户端的请求映射到一个 location block,而 location是 Nginx配置中的一个指令,用于访问的URL匹配,而 location中所配置的每个指令将会启动不同的模块去完成相应的工作
四、Nginx安装配置
Nginx Web安装时可以指定很多的模块,默认需要安装 rewrite模块,需要系统有PCRE库,安装PCRE支持 rewrite功能,以下为安装 Nginx Web服务器的方法,注意Nginx整合PCRE库,需要指定PCRE源码目录,而不是PCRE编译完成之后的路径,否则会报错。代码如下:
#安装比PCRE库支持
yum install pcre-devel pcre -y
#还要在linux安装其它依赖包
yum install gcc-c++
yum install -y zlib zl