Nginx 代理和緩存

blob.png

一 實驗環境

Nginx 版本:nginx-1.8.1

Nginx代理服務器WAN:192.168.1.5 LAN:172.16.2.1

Web1:172.16.2.2

Web2:172.16.2.3

1.  配置好IPDNS 、網關,確保使用遠程連接工具能夠連接服務器

2.       配置防火墻,iptables –F 清理防火墻規則或者關閉iptables

3.       關閉SELINUX, setenforce 0  #立即生效(實際是臨時生效)

二 Nginx Proxy 反向代理

Proxy 模塊:代理上級服務器

Upstream 模塊:自定義一個服務器組, 可以結合代理模塊從而提供負載均衡的功能

 

1.Upstream的常用參數介紹

ip_hash 類似于lvssh算法,將同一IP的請求定向至同一主機

weight: 默認為1.weight越大,負載的權重就越大

max_failsupstream允許請求失敗的次數默認為1.當超過最大次數時,返回proxy_next_upstream 模塊定義的錯誤.

fail_timeout:多久超時算失敗

down:將某個主機標記下線

backup:將某個主機設置為備份模式, 只要不是所有主機都宕機, 它就不會上線

 

2.Nginx 代理服務器上配置,編輯配置文件/etc/nginx/nginx.conf

 

在主配置文件的http段使用upstream定義一個集群, testserver是集群的名稱。

http段添加

   upstream testserver {

       server 172.16.2.2 weight=1;

       server 172.16.2.3 weight=2;

        }

Server 段添加

             location / {

          proxy_pass http://testserver;

        }

 

                  service nginx reload

         blob.png

 

       blob.png

提示:后端是LNMP平臺的話可以直接響應動態請求,例如部署WordPress……

 

 

 

三 Nginx_Cache 緩存模塊

 

緩存能夠為我們減輕服務器的負擔和加快響應速度, Nginx_proxy模塊能夠支持緩存功能, 我們這里使用我們這里緩存靜態資源

 

1.Linux上安裝ab來壓力測試

yum -y install httpd-tools

ab -n 1000 -c 200 http://192.168.1.5/index.html         

blob.png

 

2.配置緩存服務器

vi /etc/nginx/nginx.conf

http段添加:

 

proxy_cache_path /cache levels=1:1 keys_zone=testcache:64m; #內存緩存空間大小64M

 

#Location段配置

proxy_cache testcache;    #使用testcache進行緩存

proxy_cache_valid 200 1d;   #響應碼為200的緩存1

proxy_cache_valid 500 501 502 503 1m;   #響應碼為500…的緩存1分鐘

proxy_cache_use_stale error ;   #如果請求源主機的時候出問題, 仍然使用緩存

 

service nginx reload #重新載入配置

mkdir /cache #創建緩存存放文件夾

chown nginx:nginx /cache  #修改屬主和屬組為nginx

3.測試查看緩存效果

blob.png

 

從測試結果可以看出緩存對于靜態資源響應的提升是十分顯著的.

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

(1)
liangkailiangkai
上一篇 2016-12-05 00:19
下一篇 2016-12-05 09:33

相關推薦

  • shell腳本清空系統message日志

      1 #/bin/bash   2 #此腳本用來清空系統message日志文件   3 #author:wyf date:16/10/30   4 LOG_DIR=/var/log   5 ROOT…

    Linux干貨 2016-10-30
  • Linux Sysadmin–part3

    1、寫一個腳本,判斷當前系統上所有用戶的shell是否為可登錄shell(即用戶的shell不是/sbin/nologin);分別這兩類用戶的個數;通過字符串比較來實現 #!/bin/bash for i in `cut -d’:’ -f7 /etc/passwd`;do if [ $i == “/sbin/nologin…

    2017-09-19
  • lnmp部署實驗

    Lnmp部署 實驗環境: 1、Centos 7主機一臺,客戶機一臺。 2、在centos 7主機上部署:    Nginx  php-fpm  php-mysql  mariadb-server 實驗步驟: 1、啟動nginx服務,確保80端口打開,啟動mariadb-server,確保3306端口…

    Linux干貨 2016-10-30
  • 重定向以及管道

    描述I/O設備的重定向

    Linux干貨 2017-11-19
  • 馬哥教育網絡班22期+第2周課程練習

    一、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。      文件管理命令有:mkdir  rm  tree  ls  等等  1、mkdir [options] /path/to/somewhere      &…

    Linux干貨 2016-08-22
  • rsync+inotify實時同步備份數據

    rsync同步 rsync+inotify實時同步備份數據 軟件簡介: rsync命令簡介: rsync命令是一個遠程數據同步工具,可通過LAN/WAN快速同步多臺主機間的文件。rsync使用所謂的“rsync算法”來使本地和遠程兩個主機之間的文件達到同步,這個算法只傳送兩個文件的不同部分,而不是每次都整份傳送,因此速度相當快。 rsync是一個功能非常強大…

    Linux干貨 2016-10-28
欧美性久久久久