リバースプロキシ
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查看版本信息。