nginx性能優化


 

⼀、Nginx 反向代理實現

  1、反向代理與正向代理的區別

      正向代理:     

      正向代理是指客戶端與⽬標服務器之間增加⼀個代理服務器,客戶端直接訪問代理服務器,在 由代理服務器訪問⽬標服務器並返回客戶端並返回 。這個過程當中客戶端需要知道代理服務 器地址,並配置連接。

      

 

       反向代理:

      反向代理是指 客戶端訪問⽬標服務器,在⽬標服務內部有⼀個統⼀接⼊⽹關將請求轉發⾄后 端真正處理的服務器並返回結果。這個過程當中客戶端不需要知道代理服務器地址,代理對客 戶端⽽⾔是透明的。 

      

       反向代理與正向代理的區別:

    

  2、nginx代理基本配置

    Nginx 代理只需要配置 location 中配置proxy_pass 屬性即可。其指向代理的服務器地址。

      # 正向代理到baidu 服務
      location = /baidu.html {
            proxy_pass http://www.baidu.com;
      }
      # 反向代理至 本機的8010服務
      location /luban/ {
          proxy_pass http://127.0.0.1:8010;  
      }

 

二、負載均衡配置與參數解析  

  1、updtream實現

      upstream backend {     
           server 127.0.0.1:8010 weight=1;
           server 127.0.0.1:8080 weight=2;
      }

      location / {
           proxy_pass http://backend;
      }

  2、upstream相關參數

    service 反向服務地址 加端⼝ 
    weight 權重 
    max_fails 失敗多少次 認為主機已掛掉則,踢出 
    fail_timeout 踢出后重新探測時間 
    backup 備⽤服務 
    max_conns 允許最⼤連接數 
    slow_start 當節點恢復,不⽴即加⼊,⽽是等待 slow_start 后加⼊服務對列。

 

  3、upstream負載均衡算法介紹

    ll+weight: 輪詢加權重 (默認) 
    ip_hash : 基於Hash 計算 ,⽤於保持session ⼀⾄性 
    url_hash: 靜態資源緩存,節約存儲,加快速度(第三⽅) 
    least_conn :最少鏈接(第三⽅) 
    least_time  :最⼩的響應時間,計算節點平均響應時間,然后取響應最快的那個,分配更 ⾼權重(第三⽅)

 

三、Nginx ⾼速緩存

  1、nginx靜態緩存基本配置

    ⼀、在http元素下添加緩存區聲明
      #proxy_cache_path 緩存路徑
      #levels 緩存層級及目錄位數
      #keys_zone 緩存區內存大小
      #inactive 有效期
      #max_size 硬盤大小
      proxy_cache_path /data/nginx/cache_luban levels=1:2 keys_zone=cache_luban:500m inactive=20d max_size=1g; 
    ⼆、為指定location 設定緩存策略。
      # 指定緩存區
      proxy_cache cache_luban;
      #以全路徑md5值做做為Key 
      proxy_cache_key $host$uri$is_args$args;
      #對不同的HTTP狀態碼設置不同的緩存時間
      proxy_cache_valid 200 304 12h;

 

    緩存參數說明:

    

 

 

  2、緩存清除

    該功能可以采⽤第三⽅模塊 ngx_cache_purge 實現。 

    為nginx 添加 ngx_cache_purge  模塊

    #下載ngx_cache_purge 模塊包 ,這里nginx 版本為1.6.2 purge 對應2.0版

   wget http://labs.frickle.com/files/ngx_cache_purge-2.3.tar.gz2

 

    #查看已安裝模塊

    ./sbin/nginx -V

 

    #進入nginx安裝包目錄 重新安裝 --add-module為模塊解壓的全路徑

    ./configure --prefix=/root/svr/nginx --with-http_stub_status_module -with-http_ssl_module --add-module=/root/svr/nginx/models/ngx_cache_purge2.0

 

    #重新編譯

    make

 

    #拷貝 安裝目錄/objs/nginx 文件用於替換原nginx 文件

    #檢測查看安裝是否成功

    nginx -t

    清除配置:

    location ~ /clear(/.*) {
      #允許訪問的IP
      allow           127.0.0.1;
      allow           192.168.0.193;
      #禁止訪問的IP
      deny            all;
      #配置清除指定緩存區和路徑(與proxy_cache_key一至)
      proxy_cache_purge    cache_item $host$1$is_args$args;
    }      

 

    配置好以后 直接訪問 :

      http://192.x.x.x/clear/

    有參數的話后面跟參數:

      http://192.x.x.x/clear/?a=1

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM