Nginx专题(1):Nginx之反向代理及配置

  

摘要:本文从Nginx的概念出发,分别从反向代理的概念,优势,配置代码3个方面介绍了Nginx的特性之一反向代理。

  
  

文章宜信技术学院,宜信支付结算团队技术分享第一期——宜信支付结算八方数据团队高级技术经理周恒《Nginx的细枝末节》

  

分享者:宜信支付结算八方数据团队高级技术经理周恒

  

原文首发于支付结算技术团队公号:野指针

     

一、Nginx概念解读

  

对于新事物的理解,最好的方式就是从概念入手,本文作为《Nginx专题》系列文章的第一篇,先从Nginx的名称开始来分解这个神秘的引擎。

  

Nginx,是引擎X的缩写,发音也是“引擎X”, 2004年由俄罗斯大神伊戈尔·赛索耶夫开发,提供了高性能而易用的HTTP反向代理功能。后期还加入了TCP的反向代理支持。

  

最初Nginx是为了解决早年的C10K问题而生的。什么是C10K呢? C代表客户客户,10 k代表10000年,即一台服务器同时保持1万链接。这在当时是一个非常棘手的问题。

  

通过谷歌搜索Nginx会得到以下解释:

  
  

Nginx是异步框架的网页服务器,也可以用作反向代理,负载平衡器和HTTP缓存。

     

从这句话中,我们可以得到下面几个关键:

  
      <李>异步框架李   <李>反向代理李   <李>负载均衡李   <李> HTTP缓存李   
  

本专题文章将分别从这几个关键词来解读Nginx的强大之处。本文先介绍Nginx特性之反向代理及其配置实现。

  

二、反向代理

  

2.1什么是反向代理

  

代理在生活中非常常见,房屋中介是代理,终端零售是代理,选举代表是代理。这些代理都可以帮助需求方减轻很多工作的复杂度,提升效率和体验。

  

网络里的代理服务是什么样子,我想各位读者也非常清楚,这里再简单回顾一下:假设我们想在公司上网看B站的视频,而规范的公司出于安全和办公效率的考虑,设置了网络策略,不允许访问视频网站,聪明的程序员不可能被这些事情所打败,只要购买一台云服务,搭建代理服务,把浏览器设置上代理,就可以轻松访问视频网站。这就是常见的代理。

  

 Nginx专题(1):Nginx之反向代理及配置

  

那么现在问题来了:“代理”大家都懂,这里为什么强调是反向代理呢?难道还有正向代理?答案是肯定的。

  

正向代理就是大家常见的代理,以请求端也就是客户端的角度为正,向用户发出请求经过的代理,称为“正向代理”。这时是用户主动选择使用代理。

  

反向代理:先看图再解释。

  

 Nginx专题(1):Nginx之反向代理及配置

  

主动权被反转,原来是客户端选择代理,现在是代理选择服务端节点。由于控制权的反转,这样的代理被称为“反向代理”。

  

2.2反向代理的优点

  

<强> 1)保护服务安全

  
      <李>隐藏服务节点的IP,李   <李>将服务节点置于防火墙之后,避免直接攻霁业务节点服务器。   
  

2)服务节点更专注于业务,同时提升性能

  
      <李>由于有反向代理的存在,可以让反向代理服务器去实现比如https, gzip压缩等与业务无关的功能,李   <李>提供动静态分离,将静态文件发往静态服务器或本地文件系统,避免业务节点处理这些与业务无关的请求;李   <李>提供缓存机制,将一些短时间内不会变化的动态内容,在反向代理服务器这层增加缓存,降低业务服务器的请求量;李   <李>由于控制权在代理服务这边,完全可以根据服务节点的性能动态分配请求,做到服务节点性能最佳。   
  

正是由于Ngxin引入了反向代理的特性,让请求和响应都要经过Nginx,因此给Nginx带来了非常多的可能。比如负载均衡,HTTP缓存等。

  

 Nginx专题(1):Nginx之反向代理及配置

  

三,反向代理的配置

  

Nginx中关于反向代理的配置相当简单。

  

3.1配置一个单节点的反向代理

  
 <代码> #简单的反向代理
  服务器{
  听80;
  server_name big.server.com;/big.server.access access_log日志。日志主要;
  
  #通过请求动态内容到rails/turbogears/zope,等
  位置/{
  proxy_pass http://127.0.0.1:8080;
  }
  }

Nginx专题(1):Nginx之反向代理及配置