nginx負載均衡實驗

實驗一、

實驗環境:

    1、一臺director主機。并部署nginx服務。

       內網iP192.168.1.1  外網iP10.1.64.1

    2、一臺后端服務器。并部署httpd服務。并創建兩個測試頁。

       Vim  /var/www/html/index.html

       Vim  /var/www/html/admin/index.html

實驗步驟:

    1、配置director主機,vim  /var/nginx/conf.d/default.conf

        location  /  {

           root  /usr/share/nginx/html;

           proxy_pass  http://192.168.1.2;

           index  index.html  index.htm;

                    }

        

        location  /admin/  {

            proxy_pass  http://192.168.1.2;

                    }

        注意:當proxy_pass http://192.168.1.2;時,用瀏覽器訪問10.1.64.1/admin/時,

          出現的頁面是定義在/var/www/html/admin/index.html中的頁面。

              proxy_pass http://192.168.1.2/;時,用瀏覽器訪問10.1.64.1/admin/時,

          將被代理服務器代理到后端,顯示/var/www/html/index.html中的頁面。

    2、將符合條件的URL代理至后端服務器。例如將圖片代理至后端。

          location  ~* \.(jpg|peg|gif|png)$  {

            proxy_pass  http://192.168.1.2;

                     }

        /var/www/html/放置一張圖片。

   blob.png

實驗二、

     proxy_set_header field value;

設定發往后端主機的請求報文的請求首部的值;Context: http, server, location

 通過實驗一的實驗結果查看后端服務器的httpdaccess.log日志,會發現請求結果全是

 director192.168.1.1請求的。

     blob.png

 

proxy_set_header模塊添加上后,可以在后端服務器的日志中記錄實際的報文發起者,

而不再記錄directorip。

配置nginx服務。

    將該模塊加入到server

    proxy_set_header X-Real-IP $remote_addr;

          X-Real-IP $remote_addr:面向客戶端一側時,真正發出請求的客戶端的ip地址。于

                            將請求直接向后端代理。

配置httpdhttpd.conf配置文件

blob.png 

重啟服務,在瀏覽器中登錄網頁。查看后端服務器的access.log文件。

blob.png 

 

 

實驗三、定義proxy的緩存功能。

1、定義可用于proxy功能的緩存。只可定義于http

   vim  /etc/nginx/nginx.conf

       proxy_cache_path /var/cache/nginx/proxy_cache levels=1:1:1 keys_zone=pxycache:20m max_size=1g;

       定義緩存路徑:/var/cache/nginx/proxy_cache

       定義緩存級別:level=1:1:1

       Max_size:目錄一共用多大的空間來緩存緩存項

       Keys_zone:

2、定義在需要調用緩存功能的配置段,例如對圖片定義緩存功能。

   Vim default.conf

   location ~* \.(jpg|jpeg|gif|png)$ {

        proxy_pass http://192.168.1.2;

        proxy_cache pxycache;  表示調用此緩存功能。

        proxy_cache_key $request_uri;

        proxy_cache_valid 200 302 301 1h;  對不同的響應碼作緩存時長。

        proxy_cache_valid any 1m;  對其他響應碼作緩存時長,為1min。

    }

4、重啟服務。在瀏覽器中輸入10.2.64.1/logo.png第一次響應會有點慢,但是當第一次請

       求成功后,當第二次請求時就會很快了,因為在/var/cache/nginx/porxy_cache目錄中已

       經生成了緩存項,可以進入該目錄進行驗證。

實驗四、

定義服務器組

實驗環境:

    1、一臺director,并配置nginx服務。

      內網ip192.168.1.1  外網ip10.1.64.1

    2、兩臺后端服務器,分別部署httpd服務,并創建相應的測試頁。

       Server1:192.168.1.2    server2:192.168.1.3

實驗步驟:

    1、在nginxhttp中定義后端服務器組。

          upstream  webser  {

             Server 192.168.1.2;

             Server 192.168.1.3;

                   }

    2、在default.conf中定義后端引用;

          location  /  {

              proxy_pass  http://webser;

                      }

    3、當在瀏覽器中測試10.1.64.1時,后端服務器組會以輪詢的方式顯示頁面,實現了

       后端服務器的負載均衡,在生產環境中,服務器組中的頁面內容應該是一樣的。

blob.png 

    4、測試weight=number   

   upstream  webser  {

             Server 192.168.1.2  weight=2;

             Server 192.168.1.3;

                     }

   當在server 192.168.1.2上加上權重后,server1在被響應時,會根據權重的值來輪詢。

blob.png 

5、backup

將服務器標記為“備用”,即所有服務器均不可用時此服務器才啟用;

        server2主機上部署nginx服務,提供測試頁,并將端口修改為8080,因為80端口

已經被httpd服務占用。

    upstream  webser  {

             Server 192.168.1.2  weight=2;

             Server 192.168.1.3;

             Server 192.168.1.38080  buckup;

                      }

    server1server2的主機正常工作時,server3是不會被啟用的。只有當server1

Server2都不可用時server3才會被啟用。

6、測試hash key

       在之前的兩臺后端主機上分別創建10個名稱相同內容不同的網頁,以判斷是來自主機

1還是主機2。

    upstream  webser  {

                 Server 192.168.1.2  weight=2;

                 Server 192.168.1.3;

                 Server 192.168.1.38080  buckup;

                 hash  $request_uri;

                      }

 

     http://10.1.64.1/test{1..9}.html進行測試

    實現的效果就是:

        把對同一個url的請求,不管是來自哪臺主機,都將發往upstream server

 

 

 

 

 

原創文章,作者:zzd,如若轉載,請注明出處:http://www.www58058.com/56221

(0)
zzdzzd
上一篇 2016-10-30
下一篇 2016-10-30

相關推薦

  • vim文本編輯器

    Vim文本編輯器不能單獨編寫二進制文件,但是可以配合xxd命令編輯二進制文件 1、文本編輯種類: 行編輯器: sed 全屏編輯器:nano, vi、vim(其是改進的vi) 其他編輯器: Gedit,一個簡單的圖形編輯器 Gvim,一個Vim編輯器的圖形版本 2、打開文件 用法#vim  [OPTION]… FILE… +#…

    Linux干貨 2016-08-15
  • N25_第三周作業

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。 [root@aio ~]# who|cut -d" " -f1|uniq root 2、取出最后登錄到當前系統的用戶的相關信息。 [root@aio ~]# who| …

    Linux干貨 2016-12-19
  • N24_huamao 學習計劃

       每天會安排好時間按順序看視頻進行學習,由于基礎比較差我會先進行筆記然后再做博客記錄。需要操作的知識點會跟著視頻和自己的理解去做,最后達到馬哥所說的“技能”所需的要求。運維的知識點很廣很多也很復雜。當然想學好后邊的就要先打好基礎從linux系統開始學習把重要的命令記牢應用靈活才可以。這第一步自己一定要邁好。

    Linux干貨 2016-10-26
  • 初探SElinux

    SELinux介紹: SELinux: Secure Enhanced Linux(安全強化的linux),是美國國家安全局(NSA=The National Security Agency)和 SCC(Secure Computing Corporation)開發的Linux的一個強制訪問控制的安全模塊。2000年以GNU GPL發布,Linux內核2.6…

    Linux干貨 2016-10-09
  • 文本處理三劍客之grep及正則表達式

    文本處理三劍客之grep及正則表達式   文本處理工具:   Linux上處理文本三劍客:     Grep:文本過濾器工具(模式:pattern)工具;     Sed: stream editor,流編輯器;文本編輯工具;   &nbs…

    Linux干貨 2016-08-12
  • vim編輯器

                在Linux的學習中,無論是編寫腳本還是修改文件內容,我們最經常用的就是vim編輯器.vim編輯器功能十分強大,如今不僅僅只應用在Linux中.今天就來介紹一下vim編輯器的功能 進入和退出vim     進入:   在終端輸入vim 文件名 ,…

    Linux干貨 2017-08-05
欧美性久久久久