Nginx实现负载均衡与Nginx缓存功能

一、Nginx是什么

二、Nginx实现反向代理

2.1 正向代理和反向代理

2.2 nginx实现反向代理

2.3 nginx实现负载均衡

三、tengine

tengine实现动静分离

四、nginx实现缓存

4.1 为什么需要缓存

4.2 缓存服务的工作原理

4.3 nginx缓存模块

4.4 配置nginx缓存实例

五、memcached

5.1 memcached是什么

5.2 安装配置memcached 

一、Nginx是什么

  Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。
  其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。
  Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
  目前淘宝在nginx做了二次开发:tengine(见下文)。

二、Nginx实现反向代理 2.1 正向代理和反向代理

  正向代理:是一个位于客户端和目标服务器之间的服务器,为了从目标服务器取得内容,客户端向代理发送一个请求并指定目标(目标服务器),然后代理向目标服务器转交请求并将获得的内容返回给客户端。
  简单来说:
  我是一个用户,我访问不了某网站,但是我能访问一个代理服务器;
  这个代理服务器呢,他能访问那个我不能访问的网站;
  于是我先连上代理服务器,告诉他我需要那个无法访问网站的内容;
  代理服务器去取回来,然后返回给我;
  从网站的角度,只在代理服务器来取内容的时候有一次记录;
  有时候并不知道是用户的请求,也隐藏了用户的资料,这取决于代理告不告诉网站。
  反向代理:对于客户端而言它就像是目标服务器,并且客户端不需要进行任何特别的设置。客户端向反向代理的命名空间(name-space)中的内容发送普通请求,接着反向代理将判断向何处(目标服务器)转交请求,并将获得的内容返回给客户端,就像这些内容原本就是它自己的一样。
  简单来说,
  用户访问 ;
  但ooxx.me上并不存在readme页面;
  他是偷偷从另外一台服务器上取回来,然后作为自己的内容吐给用户;
  但用户并不知情┐(゚~゚)┌
  这里所提到的 ooxx.me 这个域名对应的服务器就设置了反向代理功能;
  正向代理和反向代理的区别:
  (1)从用途上来讲:
  正向代理的典型用途是为在防火墙内的局域网客户端提供访问Internet的途径。正向代理还可以使用缓冲特性减少网络使用率。反向代理的典型用途是将防火墙后面的服务器提供给Internet用户访问。反向代理还可以为后端的多台服务器提供负载平衡,或为后端较慢的服务器提供缓冲服务。
  另外,反向代理还可以启用高级URL策略和管理技术,从而使处于不同web服务器系统的web页面同时存在于同一个URL空间下。
  (2)从安全性来讲:
  正向代理允许客户端通过它访问任意网站并且隐藏客户端自身,因此你必须采取安全措施以确保仅为经过授权的客户端提供服务。
  反向代理对外都是透明的,访问者并不知道自己访问的是一个代理。

2.2 nginx实现反向代理

  nigix代理是基于ngx_http_proxy模块实现的。该模块有很多配置选项,如:

proxy_pass

  指定将请求代理至server的URL路径。

proxy_set_header

  将发送至server的报文的某首部进行重写。

proxy_send_timeout

  在连接断开之前两次发送到server的最大间隔时长;过了这么长时间后端还是没有收到数据,连接会被关闭。

proxy_read_timeout

  是从后端读取数据的超时时间,两次读取操作的时间间隔如果大于这个值,和后端的连接会被关闭。

proxy_connect_timeout

  是和后端建立连接的超时时间。
  接下来,我们就来仔细说说重点的配置选项:

2.2.1 proxy_pass配置

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/ebb3aa2b72bd7fc12fc30ad5ad077081.html