浏览目录
一、nginx简介
与Apache软件类似,Nginx ( “engine x”)是一个开源的,支持高性能、高并发的WWW服务和代理服务软件。它是由俄罗斯人Igor Sysoev开发的,最初被应用在俄罗斯的大型网站www.rambler.ru上。Nginx因为具有高并发(特别是静态资源),占用系统资源少的特性,变得流行起来。
在特性功能上面nginx不仅是优秀的Web服务软件,还具有反向代理负载均衡和缓存服务的功能。反向代理负载均衡功能类似于LVS负载均衡及haproxy等专业的代理软件。nginx不熟起来更为简单;缓存服务方面类似于Squid等专业的缓存服务软件。Nginx 可以运行在 UNIX、Linux、BSD、Mac OS X、Solaris,以及 Microsoft Windows等操作系统中。当前流行的Nginx Web 组合被称为 LNMP 或 LEMP (即 Linux Nginx MySQL PHP),其中 LEMP 里的 E 取自 Nginx(“ engine x ’’)。Nginx的官网http://nginx.org/。
nginx与Apache的区别:
nginx: 基于异步的I/O网络模型,支持高性能,高并发量(特别是对于小文件)
Apache: 基于同步的I/O网络模型,并发能力有限,处理动态业务时,比较显著
二、nginx的重要特性
□ 可针对静态资源高速高并发访问及缓存。
□ 可使用反向代理加速,并且可进行数据缓存。
□ 具有简单负载均衡、节点健康检查和容错功能。
□ 支持远程FastCGI服务的缓存加速。
□ 支持 FastCGI. Uwsgi、SCGI、Memcached Servers 的加速和缓存。
□ 支持 SSL、TLS、SNIO
□ 具有模块化的架构:过滤器包括gzip压缩、ranges支持、chunked响应、XSLT、SS1及图像缩放等功能。在SSI过滤器中,一个包含多个SSI的页面,如果经由FastCGI或反向代理处理,可被并行处理。
它所具备的其他WWW服务特性如下:
□ 支持基于名字、端口及IP的多虚拟主机站点。
□ 支持 Keep-alive 和 pipelined 连接。
□ 可进行简单、方便、灵活的配置和管理。
□ 支持修改Nginx配置,并且在代码上线时,可平滑重启,不中断业务访问。
□ 可自定义访问日志格式,临时缓冲写日志操作,快速日志轮询及通rsyslog处理日志。
□ 可利用信号控制Nginx进程。
□ 支持3xx-5xx HTTP状态码重定向。
□ 支持rewrite模块,支持URI重写及正则表达式匹配。
□ 支持基于客户端IP地址和HTTP基本认证的访问控制。
□ 支持PUT、DELETE、MKCOL、COPY及MOVE等较特殊的HTTP请求方法 。
□ 支持FLV流和MP4流技术产品应用。
□ 支持HTTP响应速率限制。
□ 支持同一 IP地址的并发连接或请求数限制。
□ 支持邮件服务代理。
三、nginx的软件功能模块
1、核心功能模块(core funtionality)
主要对应主配置文件 的Main区块和Events区域块,有许多Nginx必须的全局参数配置。
2、http功能模块集合
3、主配置文件:nginx.conf
配置文件核心参数解释:
四、虚拟主机配置
虚拟主机概念:
所谓虚拟主机,在Web服务里就是一个独立的网站站点,这个站点对应独立的域名(也可能是IP或端口),具有独立的程序及资源目录,可以独立地对外提供服务供用户访问。这个独立的站点在配置里是由一定格式的标签段标记的,对于Apache软件来说,一个虚拟主机的标签段通常被包含在< VirtualHost> </ VirtualHost> 内,而Nginx软件则使用一个server{}标签来标示一个虚拟主机。一个Web服务里可以有多个虚拟主机标签对,即可以同时支持多个虚拟主机站点。
类型:
1、基于域名的虚拟主机
通过不同的域名区分不同的虚拟主机
2、基于端口的虚拟主机
通过不同的端口区分不同的虚拟主机,主要用在公司内部的网站(不直接对外提供访问的网站),地址后面要携带端口,例如:www.any.com:9000
3、基于ip的虚拟主机
通过不同的ip区分不同的虚拟主机(非常少见,了解即可)
五、访问日志(access_log)
记录每个用户访问网站的日志信息,供分析用户的浏览行为。
定义日志的语法:log_format name(标签名) string …;
六、location语法
不同的URI对应匹配: