推薦-Nginx專題: upstream模塊和緩存的簡單使用

Nginx專題: upstream模塊和緩存的簡單使用

nginx 負載均衡

前言:

本文接著上篇Nginx專題: 從編譯安裝到URL重寫來介紹Nginx的負載均衡模塊使用方法, 本文的實驗沒有考慮大多數情況, 例如兩個web服務器之間的數據同步等, 主要寫Nginx如何作為負載均衡器使用并且緩存

實驗拓撲

blob.png

實驗環境

主機 IP地址 功用
lb.anyisalin.com 172.16.1.2 負載均衡并緩存靜態資源
web1.anyisalin.com 172.16.1.3 提供web服務
web2.anyisalin.com 172.16.1.4 提供web服務

注意: 本文所有操作都在SELinux和iptables關閉的情況下進行

Nginx_Upstream模塊介紹

The ngx_http_upstream_module module is used to define groups of servers that can be referenced by the proxy_pass, fastcgi_pass, uwsgi_pass, scgi_pass, and memcached_pass directives. 摘自官方文檔

簡單來說就是通過upstream模塊定義一個服務器組, 可以結合其他代理模塊從而提供負載均衡的效果

upstream使用方法

我們這里提供一個最簡單的upstream定義方法: 
以下兩段簡單的配置就能實現最簡單的負載均衡效果

upstream servers {
   server 172.16.1.2;
   server 172.16.1.3;
   }

location / {
   proxy_pass http://servers;
   }

upstream的常用參數介紹

upstream name {
   [ip_hash]
   server address [weight=number] [max_fails=number] [fail_timeout=number] [down|up|backup];
   ...
}

#ip_hash: 類似于lvssh算法,將同一IP的請求定向至同一主機
#weight: 權重設置
#max_failsupstream能夠自動對各群組中的服務器進行健康狀態檢查, 這里代表健康狀態檢查時最多幾次連接失敗就刪除
#fail_timeout:多久超時算失敗
#down:將某個主機下線
#backup:將某個主機設置為備份模式, 只要不是所有主機都宕機, 它就不會上線

upstream使用示例

安裝nginx的過程這里就不演示了, 有興趣的可以看我上篇博客

在nginx主配置文件中添加以下幾列

http段添加
   upstream servers {
       server 172.16.1.3;
       server 172.16.1.4;
       }

server段添加

   location / {
       proxy_pass http://servers;
   }

重載nginx

看圖!我們實現了簡單的負載均衡效果,為了演示出效果,所以使用了不同的頁面

若水GIF截圖_2016年4月7日19點35分7秒.gif

Nginx_Cache介紹

大家都知道在現今的網絡世界中, Cache is King,緩存能夠為我們減輕服務器的負擔和加快響應速度, Nginx_proxy模塊能夠支持緩存功能, 我們這里使用我們這里緩存靜態資源

緩存靜態資源

我們在web1 server上有一組靜態網頁通過負載均衡調度器進行反向代理, 我們在沒有設置緩存之前先使用ab進行壓力測試

blob.png

proxy_cache_path /cache levels=1:1 keys_zone=mycache:64m;   #http段添加

location /index.html {  #Location段配置
   proxy_pass http://172.16.1.3;
   proxy_cache mycache;    #使用mycache進行緩存
   proxy_cache_valid 200 1d;   #響應碼為200的緩存1
   proxy_cache_valid 500 501 502 503 1m;   #響應碼為500...的緩存1分鐘
   proxy_cache_use_stale error ;   #如果請求源主機的時候出問題, 仍然使用緩存
 }

保存重載

mkdir /cache #創建緩存存放文件夾
chown nginx:nginx /cache  #修改屬主和屬組為nginx

再次對其進行測試

blob.png

從上面測試可以看出緩存對于靜態資源響應的提升是非常明顯的

總結

因為時間比較緊,所有本文簡單的介紹了Nginx_upstream模塊和緩存的使用方法,很多配置參數都沒有明確的說明,以后應該還有機會和大家詳細說明, Nginx專題還沒有結束,敬請期待 
作者: AnyISalIn QQ: 1449472454 
感謝: MageEdu

原創文章,作者:Net18-AnyISalIn,如若轉載,請注明出處:http://www.www58058.com/14386

(0)
Net18-AnyISalInNet18-AnyISalIn
上一篇 2016-04-07 15:55
下一篇 2016-04-09 12:00

相關推薦

  • find命令基本應用

       簡單的find命令查找 Find +路徑+條件(支持文件通配)+找到后執行的操作 條件: 可根據文件類型查找:-type   f為普通文件 d為目錄文件 l為鏈接文件(常用) 可根據屬主和屬組查找:-uid  -gid 可根據時間戳來查找:alime(查看時間)ctime(文件屬性更改時間)m…

    Linux干貨 2017-04-11
  • LVM 2 介紹以及怎么使用?

    一、 LVM是什么? LVM利用Linux內核的device-mapper來實現存儲系統的虛擬化(系統分區獨立于底層硬件)。 通過LVM,你可以實現存儲空間的抽象化并在上面建立虛擬分區(virtual partitions),可以更簡便地擴大和縮小分區,可以增刪分區時無需擔心某個硬盤上沒有足夠的連續空間, without getting caught up …

    Linux干貨 2017-01-06
  • HA cluster應用—CoroSync+Pacemaker

    HA cluster應用——CoroSync v2 (quorum system)+Pacemaker (standalone daemon)+ crmsh/pcsh corosync簡述: Corosync是OpenAIS發展到Wilson版本后衍生出來的開放性集群引擎工程??梢哉fCorosync是OpenAIS工程的一部分。OpenAIS從openais…

    2016-11-27
  • 馬哥教育網絡班21期第8周課程練習

    1、請描述網橋、集線器、二層交換機、三層交換機、路由器的功能、使用場景與區別。 網橋也叫橋接器,是連接兩個局域網的一種存儲/轉發設備,用來連接不同網段。 集線器稱為“Hub”,主要功能是對接收到的信號進行再生整形放大,以擴大網絡的傳輸距離,同時把所有節點集中在以它為中心的節點上。 二層交換機工作于OSI模型的第2層(數據鏈路層),可識別數據包中的MAC地址信…

    Linux干貨 2016-09-19
  • Python之入門篇

    一、環境準備 環境準備 –> pyenv (安裝python解釋器,管理Python版本,管理python虛擬環境) https://github.com/pyenv/pyenv https://github.com/yyuu/pyenv-installer # yum -y install git # curl -L https://ra…

    Linux干貨 2015-02-07
  • linux網絡配置

    主要內容: ip地址以及子網劃分 路由基本概念 網絡配置工具:ifconfig,ip,netstat使用 網卡配置文件及修改 IP地址: 它們可唯一標識 IP 網絡中的每臺設備 v  每臺主機(計算機、網絡設備、外圍設備)必須具有唯 一的地址 v IP地址由兩部分組成:   &n…

    Linux干貨 2016-09-07
欧美性久久久久