Nginx指导一:介绍
并发快速加载时间一直是任何一个高流量的网站所面临的巨大挑战。 为了能快速加载网站,浏览器一般都会同时建立多个连接以方便并行下载网站内容。 伴随着持续不断的连接,网站服务器就需要足够的强大,并且能够承受住非线性比例增长的访问请求。
对于基于大量的松藕合,但是又紧密合作的各功能模块。所以对于网站来说,那些大量的松耦合,可又紧密协作的各种功能模块就非常重要了。而 Nginx 就是完成这些重要功能的非常重要组成部分。
Nginx (发音为 Engine X) 就是一个轻量级的,免费,开源的 HTTP以及反向代理服务器,就好象邮件服务器一样。
Nginx 可以完全取代了原来的 HTTP服务器,比方说:Apache, 或者就是架设在您已经建好的网站服务器基础结构的前端,做为一个反向代理服务器来使用。
反向代理服务器
把 Nginx做为一个反向代理服务器来使用,可以起到如下的作用:
1 隐藏了原来的服务器,以及他的规格参数表。
2 分布了负载均稀。
3 压缩并且缓存了服务器内容。
4 执行 A/B 测试
5 请求和响应的控制
HTTP 服务器 (对比 Apache)
Nginx 服务器和 Apache有什么区别?
Nginx 是基于事件的异步服务器,而Apache则是完全基于线程工作的。在一个相对高流量的服务器上,线程意味着更多的内存消耗。在这种情境下,基于事件的,异步的,非阻塞式的Nginx 服务器明显占优势。
结构和内部构件
他有一个主处理器以及几个工作处理器,这几个工作处理器运行于无特权的用户权限下。 Nginx 可以在每个工作处理器下面处理几千个服务器连接。
Nginx 的工作处理代码包括了一段核心和几个功能模块。 Nginx’s 模块化结构设计可以允许您无须修改核心代码就可以扩展网站服务器的功能。 模块可以读和写网络上的内容到存储器中,传输内容,传递请求到原来的服务器,包括服务器端的动作以及其他事情。 模块主要是构成了应用层及显示功能。
Nginx 模块主要有几种不同的形式: 核心模块,事件模块,阶段处理模块,协议模块,变量处理模块,过滤器,上行模块以及负载均衡。 目前,Nginx还不支持动态加载模块,所以所有的模块必须要在核心模块加载的时候一起编译。
Nginx 处理连接的过程就象是把所有的模块们都象连水管一般的接在一起,成为一个链条。对于每一个操作,这里都会一个专门的模块去做相对应的工作,比方说:压缩,修改内容,执行服务器端的载入,以及和上行应用服务器会话。
一个典型的HTTP 请求处理循环过程如下所示:
1 客户端发出一个 HTTP 请求。
2 Nginx核心模块会根据匹配该请求的配置地址文件,选择一个合适的阶段处理模块。
3 如果您也做了相应的配置,则负载均衡也会选择一个上行的服务器做为代理。
4 阶段处理模块做好自己的工作,并且把每一个输出缓存传送到第一个过滤模块上。
5 第一个过滤模块又把输出传递到第二个过滤模块上。
6 第二个又传到第三个上(以此类推)。
7 最终响应被送到客户端。
这种层级式的,松偶合但却高度粘合的方法非常适合这种响应式传递的工作。
Nginx 配置文件
Nginx 配置文件被存储在一个文本文件里, 通常他都位于/usr/local/etc/nginx 或者:/etc/nginx 下。最主要的配置文件名是:nginx.conf. Nginx 的配置文件通常是一系列的指令,按一定的逻辑结构组织在一起。对于应用的所有行为都是通过你在配置文件里面对相应的指令进行的赋值操作。
nginx.conf
01 #user nobody;
02 worker_processes 1;
03 #error_log logs/error.log;
04 #error_log logs/error.log notice;
05 #error_log logs/error.log info;
06 #pid logs/nginx.pid;
07
08 events {
09 worker_connections 1024;
10 }
11
12 http {
13 ...
以上,你所看到是一个精简版的缺省 nginx.conf 文件(加了相应的注解解释)。完整版的配置文件位于路径:/usr/local/etc/nginx or /etc/nginx. Gist 有一篇文章专门详细讲解了配置文件中的每一条指令。
这篇文章也介绍了 nginx 是什么以及他在让网站访问很快速的过程中到底扮演了多么重要的角色。同时我们也略微了解一下配置文件中的指令。下一篇文章会继续解释nginx的结构,也会给出些在不同的环境下如何配置 nginx 的详细介绍,同时也会告诉你一些必须要用到模块。
不深思则不能造于道。不深思而得者,其得易失。
名人名言- 曾国藩
- By Nishant Modak
- 2015-09-13
- 2212
- 公司新闻,网站开发,网站设计,UI