Nginx的作用: 

  1. HTTP Server 

  2. 反向代理,用于将用户的请求转发到后端的Server上,过滤掉一些无用的请求,不用直接进入后端Server 

  3. 邮件服务器 

Nginx可以同时响应上万的请求,效率要高于Apache Server。 

Nginx在公司的应用: 

  1. 反向代理:  

    1. HTTP层的交换,可以用来分流用户,比如根据用户的ID是偶数还是奇数来分流 

    2. 负载均衡 

    3. 用于缓存Server 

     

  2. 用作Web Server,主要是图片相册什么的 

Nginx在淘宝的一个应用:查询服务器,利用Lua + lua_module + MySQL 

关于Nginx的配置 

Nginx配置中最小的是location,在每个location中会有类似于Container Handler的东西,将请求转发到后端的Server中获得内容,在返回之前还可以使用filter对内容进行处理。 

Nginx配置中实现负载均衡公司使用两种方式: 

  • 根据weight:location -> proxy_pass -> upstream -> 在upstream中不同的后端Server配置不同的weight 

  • 根据Hash: location -> proxy_pass -> upstream -> 在upstream将域名之后的位置请求Hash后分配到不同的后端Server 

需要注意的是,Nginx的反向代理会将client的请求全部读入到nginx server的内存中,再转发到后端的Server。 

关于Nginx用作缓存: 

  • 可以将数据缓存到磁盘或者MemCached中

  • Nginx对磁盘上多个文件的管理性能一般 

最后提到,Nginx现在只支持HTTP1.0,所以使用的时候要注意。