nginxのを知ってもらいます

nginxの生成

  nginxのを聞いたことがありませんか?だから、今、「ピア」のApacheの聞いたことがある必要があります!nginxのは、Apacheウェブサーバと同じのようなものです。RESTアーキテクチャ・スタイルに基づいて、HTTPプロトコルを介してネットワークのさまざまなサービスを提供する通信基盤としてユニフォーム・リソース記述子(ユニフォームリソース識別子)URI、又はユニフォームリソースロケータ(ユニフォームリソースロケータ)URL、。

  ユーザーの規模、ネットワーク帯域幅、および他の製品特性とそのポジショニングと開発の制限が異なる場合ただし、これらのサーバが限定されている環境は、例えば、最初から設計されました。また、さまざまなWebサーバは、独自の特色を持っています。

  Apacheの開発期間が非常に長いですし、誰もが認める世界最大のサーバーです。その上で安定した、オープンソース、クロスプラットフォーム、および:それは多くの利点があります。時間は、インターネット業界の台頭、今よりもはるかに少ないですが、あまりにも長く表示されます。ヘビー級になるように設計されています。これは、同時実行性の高いサーバーをサポートしていません。同時アクセス数万で実行されているApacheは、サーバはメモリを大量に消費するようになります。プロセスまたはスレッドを切り替えるには、そのオペレーティング・システムは、HTTPリクエストの低い平均回答率が得られ、大量のCPUリソースを消費します。

  Apacheウェブサーバのすべての決定は、高性能になることができない、軽量高同時実行サーバnginxのはされて入ってきました。

  nginxの開発C言語を使用して、ロシアのエンジニアイガー・シソエブ、ランブラーメディアの期間中、彼の仕事、。WEBサーバとしてnginxのはランブラーメディアのための優れた、安定したサービスを提供してきました。

  そして、イガー・シソエブnginxのは、ソースコードを開いて、フリーソフトウェアライセンスを提供します。

理由は次のとおりです。

  • それは何百万人レベルのTCP接続をサポートできるように、nginxの、イベント駆動型アーキテクチャをベース
  • 高度にモジュールとフリーソフトウェアライセンスは、(オープンソース時代のああです〜)別の後、サードパーティのモジュールを有効にします
  • nginxのは、クロスプラットフォームのサーバーである、などのLinux、Windowsの、FreeBSDの、Solaris版、AIX、Mac OSの上で実行できるオペレーティングシステム
  • これらのもたらす良いデザインは素晴らしい安定性であります

だから、nginxの火災!

nginxの分野

  nginxのは無料、オープンソースの高性能のHTTPサーバーで、プロキシサーバーを逆;また、IMAP、POP3、SMTPプロキシ・サーバ、nginxのは、逆として加えnginxのでは、HTTPサーバとしての処理サイトを公開することができます負荷分散のためのプロキシ。

演技について

  薬といえば、私たちは、いわゆるプロキシの明確な概念は、チャネルの代表である必要があります。

  二つの役割、1つの行動している役割を含むこのプロセスでは、役割が目標である、代理操作と呼ばれるプロセスのターゲットの役割にこのプロキシのアクセスを通じて、いくつかのタスクを完了するために、エージェントの役割であり、人生のように - ゲストはアディダスを格納します靴のペアを購入する店、この店は薬である、エージェントの役割は、アディダスのメーカーで、目標は、ユーザーの役割です。

フォワードプロキシ

  リバースプロキシの前に言った、我々はフォワードプロキシは、プロキシモデルへのフォワードプロキシは、最も一般的に接触させ、私たちはソフトウェアとの生活から、それぞれ、上の2つの方法でフォワードプロキシモードに対処します見て側面フォワードプロキシが何を意味するかを説明します。

  我々は技術が海外でいくつかのサイトにアクセスすることので行く必要がある場合には、今日のネットワーク環境では、あなたは、私たちはウェブサイトを通じて、海外にあるでしょう、ブラウザにアクセスする方法はありません、我々はFQですべての操作を可能性がある場合、アクセスは、FQは外国のサイトにアクセスするためのプロキシサーバを見つけるための主な方法で、私たちは、プロキシサーバ、外国のWebサイトにアクセスするためのプロキシサーバに要求を送信した後、私たちに渡されたデータにアクセスします!

  プロキシフォワードと呼ばれるようにプロキシモード、上記のフォワードプロキシサーバアドレス最大の特徴は、クライアントのアクセスに非常に明確である。唯一の要求プロキシサーバからの明確な、しかしから特定したクライアントを知っていないサーバー、フォワードプロキシモードは、真の顧客情報を保護または非表示します模式図を見てください(私はボックスとフォワードプロキシにクライアントを入れて、同じ環境に属し、私は後で紹介しています):

 クライアントは、フォワードプロキシサーバを設定する必要があります、もちろん、前提は、フォワードプロキシサーバのIPアドレスと、ポートエージェントを知ることです。図に示すように。

  总结来说:正向代理,"它代理的是客户端,代客户端发出请求",是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。

正向代理的用途:
(1)访问原来无法访问的资源,如Google
(2) 可以做缓存,加速访问资源
(3)对客户端访问授权,上网进行认证
(4)代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息

反向代理

  明白了什么是正向代理,我们继续看关于反向代理的处理方式,举例如我大天朝的某宝网站,每天同时连接到网站的访问人数已经爆表,单个服务器远远不能满足人民日益增长的购买欲望了,此时就出现了一个大家耳熟能详的名词:分布式部署;也就是通过部署多台服务器来解决访问人数限制的问题;某宝网站中大部分功能也是直接使用Nginx进行反向代理实现的,并且通过封装Nginx和其他的组件之后起了个高大上的名字:Tengine,有兴趣的童鞋可以访问Tengine的官网查看具体的信息:http://tengine.taobao.org/。那么反向代理具体是通过什么样的方式实现的分布式的集群操作呢,我们先看一个示意图(我把服务器和反向代理框在一块,同属于一个环境,后面我有介绍):

 

  通过上述的图解大家就可以看清楚了,多个客户端给服务器发送的请求,Nginx服务器接收到之后,按照一定的规则分发给了后端的业务处理服务器进行处理了。此时~请求的来源也就是客户端是明确的,但是请求具体由哪台服务器处理的并不明确了,Nginx扮演的就是一个反向代理角色。  

  客户端是无感知代理的存在的,反向代理对外都是透明的,访问者并不知道自己访问的是一个代理。因为客户端不需要任何配置就可以访问。

  反向代理,"它代理的是服务端,代服务端接收请求",主要用于服务器集群分布式部署的情况下,反向代理隐藏了服务器的信息

反向代理的作用:
 (1)保证内网的安全,通常将反向代理作为公网访问地址,Web服务器是内网
 (2)负载均衡,通过反向代理服务器来优化网站的负载

项目场景

  通常情况下,我们在实际项目操作时,正向代理和反向代理很有可能会存在在一个应用场景中,正向代理代理客户端的请求去访问目标服务器,目标服务器是一个反向单利服务器,反向代理了多台真实的业务处理服务器。具体的拓扑图如下:

二者区别

截了一张图来说明正向代理和反向代理二者之间的区别,如图。

 

图解:

  在正向代理中,Proxy和Client同属于一个LAN(图中方框内),隐藏了客户端信息;

  在反向代理中,Proxy和Server同属于一个LAN(图中方框内),隐藏了服务端信息;

  实际上,Proxy在两种代理中做的事情都是替服务器代为收发请求和响应,不过从结构上看正好左右互换了一下,所以把后出现的那种代理方式称为反向代理了。

负载均衡

  我们已经明确了所谓代理服务器的概念,那么接下来,Nginx扮演了反向代理服务器的角色,它是以依据什么样的规则进行请求分发的呢?不用的项目应用场景,分发的规则是否可以控制呢?

  这里提到的客户端发送的、Nginx反向代理服务器接收到的请求数量,就是我们说的负载量。

  请求数量按照一定的规则进行分发到不同的服务器处理的规则,就是一种均衡规则。

  所以~将服务器接收到的请求按照规则分发的过程,称为负载均衡。

  负载均衡在实际项目操作过程中,有硬件负载均衡和软件负载均衡两种,硬件负载均衡也称为硬负载,如F5负载均衡,相对造价昂贵成本较高,但是数据的稳定性安全性等等有非常好的保障,如中国移动中国联通这样的公司才会选择硬负载进行操作;更多的公司考虑到成本原因,会选择使用软件负载均衡,软件负载均衡是利用现有的技术结合主机硬件实现的一种消息队列分发机制。

 

Nginx支持的负载均衡调度算法方式如下:

  1. weight轮询(默认,常用):接收到的请求按照权重分配到不同的后端服务器,即使在使用过程中,某一台后端服务器宕机,Nginx会自动将该服务器剔除出队列,请求受理情况不会受到任何影响。 这种方式下,可以给不同的后端服务器设置一个权重值(weight),用于调整不同的服务器上请求的分配率;权重数据越大,被分配到请求的几率越大;该权重值,主要是针对实际工作环境中不同的后端服务器硬件配置进行调整的。
  2. ip_hash(常用):每个请求按照发起客户端的ip的hash结果进行匹配,这样的算法下一个固定ip地址的客户端总会访问到同一个后端服务器,这也在一定程度上解决了集群部署环境下session共享的问题。
  3. fair:智能调整调度算法,动态的根据后端服务器的请求处理到响应的时间进行均衡分配,响应时间短处理效率高的服务器分配到请求的概率高,响应时间长处理效率低的服务器分配到的请求少;结合了前两者的优点的一种调度算法。但是需要注意的是Nginx默认不支持fair算法,如果要使用这种调度算法,请安装upstream_fair模块。
  4. url_hash:按照访问的url的hash结果分配请求,每个请求的url会指向后端固定的某个服务器,可以在Nginx作为静态服务器的情况下提高缓存效率。同样要注意Nginx默认不支持这种调度算法,要使用的话需要安装Nginx的hash软件包。

 几种常用web服务器对比

 

 

出处:https://www.cnblogs.com/wcwnina/p/8728391.html

 

おすすめ

転載: www.cnblogs.com/myseries/p/11270634.html