免責事項:この記事はCC 4.0 BY-SAの著作権契約書に従って、ブロガーオリジナル記事です、複製、元のソースのリンクと、この文を添付してください。
このリンクします。https://blog.csdn.net/qq_36125138/article/details/84144932
紙の場合には、サードパーティのモジュールも無限紹介するのでnginxのはあまり物事を処理することができ、サードパーティのモジュールをロードしないだけのために、当然のことながら、この記事自体は、すべての後に、ちょうど私の個人的な使用の完全導入することと、あまりにも素敵理解していない可能性メッセージ交換を歓迎します。
何がnginxの
- リバースプロキシ
- ロードバランシング
--httpサーバ(静的及び動的分離)
- フォワードプロキシ
物事を処理することができ、サードパーティのモジュールに依存しない、私はnginxの中で学んだすべてであること、それを行うには、各機能の以下の詳細な説明方法。
リバースプロキシ
nginxのリバースプロキシは、次の文は、Baiduの百科事典である、それはリバースプロキシものです、一つのことで構成する必要があります:リバースプロキシ(リバースプロキシ)モードでは、インターネット上の接続要求を受け入れるようにプロキシサーバーを指し、その後、転送し、内部ネットワーク上のサーバへの要求、およびリバースプロキシサーバーの場合は、外部のプロキシサーバのパフォーマンス、インターネットへの接続を要求しているクライアントにサーバーの背面から得られた結果。それは単に、もちろん、それは同じサーバ、ポートかもしれプロキシサーバーを必要とするので、真のサーバが直接、外部のネットワークにアクセスし、プロキシサーバが同時にネットワーク環境で同じ実サーバとのすべての接続の外部ネットワークにアクセスすることができません異なります。
以下は、リバースプロキシを達成するために、コードのシンプルな一枚を貼り付け
nginxのを開始するには、設定ファイルを保存した後、私たちは、アクセスはlocalhostと同等のlocalhostを、訪問したときにその:8080 Aを
ロードバランシング
nginxのロードバランシングは、共通の特徴であり、これは負荷がタスクを完了するために一緒にそのような作業には、そのようなWebサーバ、FTPサーバ、ビジネスクリティカルなアプリケーションサーバや他のミッションクリティカルなサーバなどの実行に割り当てられた複数のオペレーティング・ユニット、バランシングことを意味しています。簡単に言えば、それは、指定されたサーバー・プロセスへのランダムなルールの要求に応じて分散サーバの2つの以上のセットが、存在する場合には、ロードバランシングの設定は、一般的に、リバースプロキシ、ロードバランサを介してジャンプする、リバースプロキシを設定する必要があるということです。nginxのは、現在、ネイティブの負荷分散戦略の3種類をサポートし、一般的なサードパーティポリシーの2種類があります。
1、RR(デフォルト)
バックエンドサーバがダウンしている場合、個別に異なる時間順バックエンドサーバーに割り当てられた各要求は、自動的に削除することができます。
シンプルな設定
ロード・バランシングは、コアコードです
ここで私は二つのサーバを構成し、もちろん、それは実は1であるが、ちょうどない、同じポート、および8081サーバーの訪問にはないこと、存在するが、我々は、HTTPを訪問していません:// localhostの時間、またそこに、問題になります。httpにジャンプするデフォルトになります:// localhostを:8080により、特に、自動的にサーバが(サーバがハングアップ)アクセスできない場合nginxのは、それはそれので、このサーバにジャンプしませんでしょう、サーバーの状態を判断するために使用に影響ハングサーバーのケースを避けるために、nginxのデフォルトのRR政策以来、我々は非常に多くのより多くの設定は必要ありません。
2、重量
ポーリング凹凸バックエンドサーバのパフォーマンス場合の重量比は、アクセスに比例した確率。
例えば
だから、9は8080にアクセスする必要がありますしながら、唯一の10回1は、8081にアクセスする必要があります通常あり
3、ip_hash
方法の上記2種類の要求に次の要求が私たちのプログラムはステートレスではない別のサーバーに配布することができるとき(セッションデータの保存を使用して)という問題があり、今回は素晴らしいがありますセッションへのログイン情報を保存するよう再度ログインする必要がある場合、その後、別のサーバーに移動するように非常に問題が、我々は唯一のサーバーのクライアントアクセスを必要とするので、何度も、あなたはiphash使用する必要がある、とiphash各要求は訪問によるIPハッシュ結果が割り当てられているので、各訪問者は、固定のバックエンドサーバーにアクセスすることを、セッションの問題を解決することができます。
4、フェア(サードパーティ)
バックエンドサーバ、短い応答時間優先割り当てに割り当て要求の応答時間によって。
5、url_hash(サードパーティ)
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。 在upstream中加入hash语句,server语句中不能写入weight等其他的参数,hash_method是使用的hash算法
以上5种负载均衡各自适用不同情况下使用,所以可以根据实际情况选择使用哪种策略模式,不过fair和url_hash需要安装第三方模块才能使用,由于本文主要介绍Nginx能做的事情,所以Nginx安装第三方模块不会再本文介绍
HTTP服务器
Nginx本身也是一个静态资源的服务器,当只有静态资源的时候,就可以使用Nginx来做服务器,同时现在也很流行动静分离,就可以通过Nginx来实现,首先看看Nginx做静态资源服务器
这样如果访问http://localhost 就会默认访问到E盘wwwroot目录下面的index.html,如果一个网站只是静态页面的话,那么就可以通过这种方式来实现部署。
动静分离
动静分离是让动态网站里的动态网页根据一定规则把不变的资源和经常变的资源区分开来,动静资源做好了拆分以后,我们就可以根据静态资源的特点将其做缓存操作,这就是网站静态化处理的核心思路
这样我们就可以吧HTML以及图片和css以及js放到wwwroot目录下,而tomcat只负责处理jsp和请求,例如当我们后缀为gif的时候,Nginx默认会从wwwroot获取到当前请求的动态图文件返回,当然这里的静态文件跟Nginx是同一台服务器,我们也可以在另外一台服务器,然后通过反向代理和负载均衡配置过去就好了,只要搞清楚了最基本的流程,很多配置就很简单了,另外localtion后面其实是一个正则表达式,所以非常灵活
正向代理
正向代理,意思是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端才能使用正向代理。当你需要把你的服务器作为代理服务器的时候,可以用Nginx来实现正向代理,但是目前Nginx有一个问题,那么就是不支持HTTPS,虽然我百度到过配置HTTPS的正向代理,但是到最后发现还是代理不了,当然可能是我配置的不对,所以也希望有知道正确方法的同志们留言说明一下。
resolver是配置正向代理的DNS服务器,listen 是正向代理的端口,配置好了就可以在ie上面或者其他代理插件上面使用服务器ip+端口号进行代理了。
正向代理与反向代理区别图解 (nginx)
1. 背景
经常听到代理,比如通常我们要上国外的网站时,需要买vpn作为跳板机器进行访问。
但是在公司里面也听到了nginx支持反向代理。
那什么是正向代理,什么是反向代理?在网上看了写内容,说一下自己的理解。
2. 正向代理
正向代理,是在用户端的。比如需要访问某些国外网站,我们可能需要购买vpn。
并且vpn是在我们的用户浏览器端设置的(并不是在远端的服务器设置)。
浏览器先访问vpn地址,vpn地址转发请求,并最后将请求结果原路返回来。
3. 反向代理
有正向代理,就有反向代理。(哈哈,因为起名字的人也会考虑,为什么不叫代理,而是取名"正向"代理)。
反向代理是作用在服务器端的,是一个虚拟ip(VIP)。对于用户的一个请求,会转发到多个后端处理器中的一台来处理该具体请求。
大型网站都有DNS(域名解析服务器),load balance(负载均衡器)等。
总结,nginx作为软件能支持反向代理,也就是说nginx可以作为负载均衡器。
(负载均衡器可以提高网站性能,支持更高并发请求)
1. 背景
经常听到代理,比如通常我们要上国外的网站时,需要买vpn作为跳板机器进行访问。
但是在公司里面也听到了nginx支持反向代理。
那什么是正向代理,什么是反向代理?在网上看了写内容,说一下自己的理解。
2. 正向代理
正向代理,是在用户端的。比如需要访问某些国外网站,我们可能需要购买vpn。
并且vpn是在我们的用户浏览器端设置的(并不是在远端的服务器设置)。
浏览器先访问vpn地址,vpn地址转发请求,并最后将请求结果原路返回来。
3. 反向代理
有正向代理,就有反向代理。(哈哈,因为起名字的人也会考虑,为什么不叫代理,而是取名"正向"代理)。
反向代理是作用在服务器端的,是一个虚拟ip(VIP)。对于用户的一个请求,会转发到多个后端处理器中的一台来处理该具体请求。
大型网站都有DNS(域名解析服务器),load balance(负载均衡器)等。
总结,nginx作为软件能支持反向代理,也就是说nginx可以作为负载均衡器。
(负载均衡器可以提高网站性能,支持更高并发请求)