Nginx介绍与使用

选择一个合适的Web服务器是每个建站站长在考虑网站性能必然要考虑的问题,目前市场上的Web服务器比较主流且具有代表性的非Apache和Nginx莫属。本文首先对Apache和Nginx进行简单的介绍和对比,然后再着重对Nginx服务器进行介绍和配置的解析。

Apache 与 Nginx

就服务器的使用目的而言,Apache和Nginx都是用作接收用户的请求=>处理请求=>将处理的结果返回给用户。两者的区别主要有以下两点:

1.连接的处理

Apache和Nginx最大的不同在于它们对连接的处理方式。Apache提供一系列多重处理模块(mpmprefork、mpmworker、mpm_envent),通过这些多重处理模块对进程和线程池进行管理,以多进程或多线程同步阻塞的方式来使用操作系统的资源,当访问人数过多时容易造成访问过慢。与Apache不同,Nginx的工作是多进程单线程的,通过异步非阻塞的事件驱动的方式来实现的,使用多进程模式,不仅能提高并发率,而且进程之间相互独立,一个 worker 进程挂了不会影响到其他 worker 进程。

2.内容的处理

这里的内容主要分为静态内容和动态内容,当客户端做出一个请求,如:

这时服务器返回的内容的形式(动态、静态)取决与服务器是否具有生成动态内容的能力。如我们需要在返回的index.html资源中动态的显示当前时间:

每次获取到的index.html的内容都是服务器动态生成的内容。而一般情况下,我们所获取到的index.html是固定存放在服务器上的静态内容。

简单来说:Apache拥有丰富的模块组件支持,动态内容处理强。Nginx占用资源少,高并发处理强,静态内容处理高效。

Nginx反向代理与配置

Nginx反向代理

当客户端向服务端的反向代理发起请求时,反向代理以某种负载均衡机制将请求分发到各个目标服务器,并且将这些服务器所处理返回的内容返回给客户端。这个反向代理服务器没有保存任何网页的真实数据,所有的静态网页或者CGI程序,都保存在内部的Web服务器上。因此对反向代理服务器的攻击并不会使得网页信息遭到破坏,这样就增强了Web服务器的安全性,其中CDN就是一个比较常见的例子。

Nginx的配置

Nginx的配置文件一共由三个部分组成,全局块events块http块。其中,http块中由包含了http全局块多个server块

全局块是默认配置文件从开始到events块之间的一部分内容,主要设置一些影响Nginx服务器整体运行的配置指令,因此,这些指令的作用域是Nginx服务器全局。通常包含配置运行Nginx服务器的用户(组)、允许生成的worker process数,Nginx进程PID存放路径、日志的存放路径和类型以及配置文件引入等。

events块主要影响Nginx服务器与用户的网络连接。常用到的设置包括是否开启对多worker process下的网络连接进行序列化,是否允许同时接收多个网络连接,选取哪种事件驱动模型处理连接请求,每个worker process可以同时支持的最大连接数等。这一部分的指令对Nginx服务器的性能影响较大,在实际配置中应该根据实际情况灵活调整。

http块是Nginx服务器配置中的重要部分,代理、缓存和日志定义等绝大多数的功能和第三方模块的配置都可以放在这个模块中。http块中可以包含自己的全局块,也可以包含server块,server块中又进一步包含location块。可以在http全局块中配置的指令包括文件引入、MIME-Type定义、日志自定义、是否使用sendfile传输文件、连接超时时间、单请求数上线等。

负载均衡配置

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181019G1WKPX00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券