機能のnginxのセット - リバースプロキシ、ロード・バランシング、キャッシング、静的および動的な分離、スムーズなアップグレード

リバースプロキシ

nginxの設定ファイル

イベント駆動型イベント{}

上のhttpd {} のhttpd 構成関連

} {仮想ホストサーバーを定義

位置{} URIアクセス属性

 

場所〜* \。PHPの$ {正規表現を行い、すべてがする.PHP 終わるファイルを

   fastcgi_pass 127.0.0.1:9000リバースプロキシ、行く127.0.0.1:9000をこの場所にデータを要求する必要があります

 

    }

リバースプロキシ:

proxy_pass:このオプションは、直接リバースプロキシを指定します

proxy_set_header:ユーザーの要求は、バックエンドサーバーに転送するとき、あなたはユニークなヘッドを設定することができます!

 

ロードバランシング

上流のウェブサーバ{     ネームサーバグループ定義された       サーバーモジュールのロードバランシングオプションは、外部定義します

           ip_hash、同じクライアントからの要求に、常に同じサーバーに

          サーバ192.168.2.129の  重量= 1   max_fails = 2 fail_timeout = 2。

          各検査の1回の所要時間の重量まで内部サーバーエラーを選択

          サーバ192.168.2.128の重量= 1   max_fails = 2 fail_timeout = 2。  

           サーバー127.0.0.1:8080  バックアップ。    }    

           サーバーは、上記のすべてのハングアップすると、このページの登場!

サーバー{

        80を聞きます。

        サーバー名はlocalhost。

 

位置/ {

             proxy_passの  HTTP://ウェブサーバ/ ;は   、これは上流のグループ名を変更する必要があり、リバースプロキシ、リバースプロキシのこのグループのすべてのメンバーを指し!

            }

       }

当社のすべてのサーバがこのページに表示されハングサーバー、セットを、再定義してください。

定義されているサーバの後、上流のはこのサーバーモジュールを追加します!

サーバー{

 8080を聞きます。

 サーバー名はlocalhost。

  ルート/www/a.org。

  インデックスのindex.html;

}

 

nginxのは、3つのロードバランシングアルゴリズムをサポートしています。

     ラウンドロビン:重み付けデフォルト

     ip_hash:同じクライアントからの要求、そして常に同じサーバーに

     least_conn:最小リンク

 

キャッシュ

nginxのキャッシュは2つの部分から成ります:

    共有メモリ:キーデータとキャッシュオブジェクトを格納します

    ディスク容量:データを保存します

 

proxy_cache_path定義されたバッファ空間は、で定義することができないサーバ{} モジュール、

               levels=1:2:1    缓存目录:子目录级别,最多定义三个级别,每一级别字符最多2个!第一个级别1个字符,第二个级别2个字符。。。。

               keys_zone     存储键的区域,区域大小

               max_size      缓存目录大小

格式:proxy_cache_path   /ngnx/hun    levels=1:2:1    keys_zone=fst:20m    max_size=1G; 

                       缓存目录       缓存

cache_manager :根据最近最少使用算法,将那些此前没有用的缓存给他清除出去。

 

定义完缓存,还需要在location模块中启用它,proxy_cache   缓存名,这里的缓存名就是keys_zone中定义的名字

 

另外的三种缓存:

open_log_cache :日志缓存

open_file_cache

fastcgi_cache

 

动静分离

webDAV :一种基于HTTP1.1协议的通信协议,他扩展了HTTP1.1,使应用程序可直接对web  server 直接读写,并支持文件锁定及解锁,支持文件的版本控制

 

 

#动态页面交给http://tdt_wugk,也即我们之前在nginx.conf定义的upstream tdt_wugk 均衡

    location ~ .*\.(php|jsp|cgi)?$

    {

         proxy_set_header Host  $host;

         proxy_set_header X-Real-IP $remote_addr;

         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

         proxy_pass http://tdt_wugk;

    }

#配置Nginx动静分离,定义的静态页面直接从Nginx发布目录读取。

    location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$

    {

    root /data/www/wugk;

    #expires定义用户浏览器缓存的时间为3天,如果静态页面不常更新,可以设置更长,这样可以节省带宽和缓解服务器的压力

    expires      3d;

    }

 

平滑升级

Nginx方便地帮助我们实现了平滑升级。其原理简单概括,就是:

(1)在不停掉老进程的情况下,启动新进程。

(2)老进程负责处理仍然没有处理完的请求,但不再接受处理请求。

(3)新进程接受新请求。

(4)老进程处理完所有请求,关闭所有连接后,停止。

操作步骤:

1、使用nginx  -V  查看旧版本./configure的选项

2、使用旧版本的./configure的选项编译新版本,编译时不能make install

3、编译完成之后,把旧版本的可执行文件备份或者改名,

4、新版本编译完成之后,在解压包目录中objects文件夹下有新版本的可执行文件,把它复制到旧版本可执行文件的文件路径下。

5、测试新版本nginx是否正常,使用新版本的可执行文件  nginx   -t  -c   nginx的主配置文件

6、在新版本nginx的解压目录下执行命令升级:make  upgrade

7、升级之后使用:nginx  -v查看版本信息。

 

おすすめ

転載: www.cnblogs.com/linux-s/p/11288905.html