Nginx專題: upstream模塊和緩存的簡單使用
前言:
本文接著上篇Nginx專題: 從編譯安裝到URL重寫來介紹Nginx的負載均衡模塊使用方法, 本文的實驗沒有考慮大多數情況, 例如兩個web服務器之間的數據同步等, 主要寫Nginx如何作為負載均衡器使用并且緩存
實驗拓撲
實驗環境
主機 | 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: 類似于lvs的sh算法,將同一IP的請求定向至同一主機
#weight: 權重設置
#max_fails:upstream能夠自動對各群組中的服務器進行健康狀態檢查, 這里代表健康狀態檢查時最多幾次連接失敗就刪除
#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
看圖!我們實現了簡單的負載均衡效果,為了演示出效果,所以使用了不同的頁面
Nginx_Cache介紹
大家都知道在現今的網絡世界中,
Cache is King
,緩存能夠為我們減輕服務器的負擔和加快響應速度, Nginx_proxy模塊能夠支持緩存功能, 我們這里使用我們這里緩存靜態資源
緩存靜態資源
我們在web1 server上有一組靜態網頁通過負載均衡調度器進行反向代理, 我們在沒有設置緩存之前先使用ab進行壓力測試
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
再次對其進行測試
從上面測試可以看出緩存對于靜態資源響應的提升是非常明顯的
總結
因為時間比較緊,所有本文簡單的介紹了Nginx_upstream模塊和緩存的使用方法,很多配置參數都沒有明確的說明,以后應該還有機會和大家詳細說明, Nginx專題還沒有結束,敬請期待
作者: AnyISalIn QQ: 1449472454
感謝: MageEdu
原創文章,作者:Net18-AnyISalIn,如若轉載,請注明出處:http://www.www58058.com/14386