nginx常用功能

简介

Nginx 是俄罗斯人编写的十分轻量级的 HTTP 服务器,Nginx,它的发音为“engine X”,是一个高性能的HTTP和反向代理服务器,同时也是一个 IMAP/POP3/SMTP 代理服务器。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

主要功能以及用途

  1. 正向代理(内网服务器主动去请求外网服务的一种行为)
    客户端无法主动或者不打算主动去向某服务器发送请求,而是委托nginx代理服务器去向服务器发送请求,并且获得处理结果,返回给客户端。VPN的原理大体上类似于一个正向代理,需要访问外网的电脑,发起一个访问外网的请求,通过本机上的VPN去寻找一个可以访问国外网站的代理服务器,代理服务器向外国网站发送请求,然后把结果返回给本机。
  2. 反向代理
    反向代理是指用代理服务器来接受客户端发来的请求,然后将请求转发给内网中的上游服务器,上游服务器处理完之后,把结果通过nginx返回给客户端。

  3. 透明代理
    透明代理:也叫做简单代理,意思客户端向服务端发起请求时,请求会先到达透明代理服务器,代理服务器再把请求转交给真实的源服务器处理,也就是是客户端根本不知道有代理服务器的存在。

  1. 负载均衡
    将服务器接收到的请求按照规则分发的过程,称为负载均衡。负载均衡是反向代理的一种体现。
    负载均衡的模式:
    1. 轮询:每个请求按时间顺序逐一分配到不同的后端服务器,也是nginx的默认模式。轮询模式的配置很简单,只需要把服务器列表加入到upstream模块中即可。
    2. ip_hash:每个请求按访问IP的hash结果分配,同一个IP客户端固定访问一个后端服务器。可以保证来自同一ip的请求被打到固定的机器上,可以解决session问题。
    3. url_hash:按访问url的hash结果来分配请求,相同的url固定转发到同一个后端服务器处理。
    4. fair:按后端服务器的响应时间来分配请求,响应时间短的优先分配。
      每一种模式中,每一台服务器后面可以携带的参数有:
    • down: 当前服务器暂不参与负载
    • weight: 权重,值越大,服务器的负载量越大。
    • max_fails:允许请求失败的次数,默认为1。
    • fail_timeout:max_fails次失败后暂停的时间。
    • backup:备份机, 只有其它所有的非backup机器down或者忙时才会请求backup机器。
  2. 静态服务器