1. 程式人生 > >nginx 反向代理,負載均衡,重定向,讀寫分離

nginx 反向代理,負載均衡,重定向,讀寫分離

一.nginx反向代理

配置檔案nginx.conf

在server裡面增加一條location:

        location /test {
                proxy_pass http://192.168.141.170:80/dashboard;
                proxy_set_header X-Real-IP $remote_addr;


        }

然後使用nginx -t 測試成功後,重啟nginx,如果server端需要記錄訪問者ip則需要在對面做相應配置。

如果後端為apache則修改httpd.conf中的Logformat。

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

-> %(x-real-ip)i 

二.nginx負載均衡

編輯nginx.conf檔案

新增內容:

   upstream webserv {
        server 192.168.140.78 weight=1 max_fails=2 fail_timeout=2;   
        server 192.168.141.170 weight=1 max_fails=2 fail_timeout=2;

        }

注意:weight為權重排程可以輪巡,max_fails,fail_timeout設定自我健康檢查。

在location處,改變內容:

proxy_pass http://webserv/;

如果,全部宕機則顯示一個web錯誤頁面:

首先定義一個server:

例如:

在代理伺服器設定errorpage:

    server{


        listen 8080;
        server_name localhost;
        root /web/errpagers;
        index index.html;

        }

然後在建立目錄/web/errpagers,並在目錄下建立index.html檔案,然後在upstream處新增為backup。

    upstream webserv {
        #server 192.168.140.78 weight=1 max_fails=2 fail_timeout=2;
        server 192.168.141.170 weight=1 max_fails=2 fail_timeout=2;
        server 192.168.140.78:8080 backup;
        }

如果前面的server全部宕機則頁面顯示自定義錯誤index.html

nginx支援三種負載均衡模式:

round-robin(預設,需要權重),ip_hash,least_conn

三.nginx快取

cache:共享記憶體(儲存鍵和快取物件元資料)磁碟空間:儲存資料

定義快取:

proxy_cache_path /nginx/cache/first levels=1:2 keys_zone=first:20m max_size=1g;

然後再location中引用此快取:

proxy_cache first;
proxy_cache_valid 200 10m;

如果測試是否命中在server中新增:

add_header X-cache $upstream_cache_status;

四.nginx重定向URL

rewite模組:

if(condition){}

例子:

location /img/ {

rewrite http://192.168.140.78/img/;

}

五.nginx讀寫分離

找到direction,然後後面新增  Dav  on。

location / {

proxy_pass http://192.168.140.170/;

if ($request_method = "PUT") {

proxy_pass  http://192.168.140.78/;

}

}