nginx 負載均衡,反向代理配置

1.DNS域名解析:

host文件:在Windows中可以通過C:\Windows\System32\drivers\etc\hosts文件來設置。

 

2.外網映射工具:

可以讓外網訪問本地應用程序:常用的外網測試工具有natapp、ngrok

 

 

3.nginx應用場景:

    1、http服務器。Nginx是一個http服務可以獨立提供http服務。可以做網頁靜態服務器。

     2、虛擬主機。可以實現在一臺服務器虛擬出多個網站,例如個人網站使用的虛擬機。

     3、反向代理,負載均衡。當網站的訪問量達到一定程度後,單臺服務器不能滿足用戶的請求時,需要用多臺服務器集羣可以使用nginx做反向代理。並且多臺服務器可以平均分擔負載,不會應爲某臺服務器負載高宕機而某臺服務器閒置的情況。

     4、nginz 中也可以配置安全管理、比如可以使用Nginx搭建API接口網關,對每個接口服務進行攔截。

 

 

4.nginx虛擬主機配置:

基於域名配置虛擬主機:修改nginx conf下的nginx.conf配置文件,其中的server設置如下,當客戶端訪問www.oltest.com時,直接跳轉到nginx下data/test去找index.html index.htm文件。

 server
  {
        listen       80;
        server_name  www.oltest.com;
        location / {
            root   data/test;
            index  index.html index.htm;
        }
  }
 
  server {
        listen       80;
        server_name  www.oltest2.com;
        location / {
            root   data/test2;
            index  index.html index.htm;
        }
    }

 

 

 

5.nginx反向代理:

反向代理(Reverse Proxy)方式是指以代理服務器來接受internet上的連接請求,然後將請求轉發給內部網絡上的服務器,並將從服務器上得到的結果返回給internet上請求連接的客戶端,此時代理服務器對外就表現爲一個反向代理服務器。

 

反向代理的好處

反向代理的好處隱藏真實內部ip地址,請求先訪問nginx代理服務器(外網可以訪問到),在使用nginx服務器轉發到真實服務器中。

反向代理配置文件nginx.conf server配置:

server {

        listen       80;

        server_name  www.oltest.com;

   #匹配所有以/開頭請求

        location / {

           proxy_pass http://127.0.0.1:8080;    配置轉發路徑

            index  index.html index.htm;

        }

    }

location的作用

  location指令的作用是根據用戶請求的URI來執行不同的應用,也就是根據用戶請求的網站URL進行匹配,匹配成功即進行相關的操作。

location的語法

已=開頭表示精確匹配;       ^~ 開頭表示uri以某個常規字符串開頭,不是正則匹配

~ 開頭表示區分大小寫的正則匹配;         ~* 開頭表示不區分大小寫的正則匹配

/ 通用匹配, 如果沒有其它匹配,任何請求都會匹配到

 

 

6.nginx負載均衡:

 什麼是負載均衡:

爲了解決高併發,負載均衡器攔截到所有請求,再採用負載均衡算法(輪詢,權重,ip綁定)分配到不同真實的服務上。

 

負載均衡的作用:

減輕單臺服務器壓力

 

服務器集羣(分佈式中常見問題)

1.分佈式Session一致性問題           2.分佈式Job冪等性(唯一性)問題           3.分佈式生成全局 id   

4.分佈式鎖解決方案                        5.分佈式配置中心                               6.分佈式日誌收集系統

 

 

四層負載和七層負載均衡的區別:

四層負載均衡,在網絡模型中的傳輸層中,基於主要是基於tcp協議報文實現負載均衡(比如LVS、haproxy就是四層負載均衡器),使用改寫報文的源地址和目的地址。

七層負載均衡,在網絡模型中應用層中,基於URL或者HTTP協議實現負載均衡,Web服務器。

 

nginx配置負載均衡:

 upstream  backServer{

    server 127.0.0.1:8080;    //真實服務器地址 默認輪詢算法實現負載均衡

    server 127.0.0.1:8081;    

}

輪詢:每個請求按時間順序逐一分配到不同的後端服務,如果後端某臺服務器死機,自動剔除故障系統,使用戶訪問不受影響。

----------------------------------------------------------------------------------------------------------------------------

權重方式:

 upstream  backServer{

    server 127.0.0.1:8080  weight=1;   

    server 127.0.0.1:8081    weight=3;    

}

------------------------------------------------------------------------------------------------------------------------------

Ip綁定方式:可以解決session 一致性問題,但是不常用。

upstream  backServer{

    server 127.0.0.1:8080 ;

   server 127.0.0.1:8081 ;

   ip_hash;

}

每個請求按訪問IP的哈希結果分配,使來自同一個IP的訪客固定訪問一臺後端服務器,並且可以有效解決動態網頁存在的session共享問題。俗稱IP綁定。

---------------------------------------------------------------------------------------------------------------------------

server {

        listen       80;

        server_name  www.test.com;    //瀏覽器輸入域名

        location / {

    ### 指定上游服務器負載均衡服務器

    proxy_pass http://backServer;

            index  index.html index.htm;

        }

    }

 

 

 

7.nginx配置故障轉移:

當上遊服務器(真實訪問服務器),一旦出現故障或者是沒有及時響應的話,應該直接輪訓到下一臺服務器,保證服務器的高可用。

server {

        listen       80;

        server_name  www.itmayiedu.com;

        location / {

    ### 指定上游服務器負載均衡服務器

         proxy_pass http://backServer;

   ###nginx與上游服務器(真實訪問的服務器)超時時間 後端服務器連接的超時時間_發起握手等候響應超時時間

           proxy_connect_timeout 3s;

   ###nginx發送給上游服務器(真實訪問的服務器)超時時間

            proxy_send_timeout 3s;

   ### nginx接受上游服務器(真實訪問的服務器)超時時間

            proxy_read_timeout 3s;

            index  index.html index.htm;

        }

    }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章