久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      Linux中的varnish服務(wù)解析

      一、varinish簡介

      Varnish是一款高性能的開源HTTP加速器,他的作者Poul-Henning Kamp是FreeBSD的內(nèi)核開發(fā)者之一。挪威最大的在線報紙 Verdens Gang 使用3臺Varnish代替了原來的12臺Squid,性能比以前更好。

      Varnish與一般服務(wù)器軟件類似,就是一個web緩存代理服務(wù)器,分為master(management)進(jìn)程和child(worker,主要做cache的工作)進(jìn)程。master進(jìn)程讀入命令,進(jìn)行一些初始化,然后fork并監(jiān)控child進(jìn)程。child進(jìn)程分配若干線程進(jìn)行工作,主要包括一些管理線程和很多woker線程。

      Management進(jìn)程主要實(shí)現(xiàn)應(yīng)用新的配置、編譯VCL、監(jiān)控varnish、初始化varnish以及提供一個命令行接口等。 Management進(jìn)程會每隔幾秒鐘探測一下Child進(jìn)程以判斷其是否正常運(yùn)行,如果在指定的時長內(nèi)未得到Child進(jìn)程的回 應(yīng),Management將會重啟此Child進(jìn)程。

      Child進(jìn)程包含多種類型的線程,常見的如:
      Acceptor線程:接收新的連接請求并響應(yīng);
      Worker線程:child進(jìn)程會為每個會話啟動一個worker線程,因此,在高并發(fā)的場景中可能會出現(xiàn)數(shù)百個worker線程甚至更多;
      Expiry線程:從緩存中清理過期內(nèi)容;

      Varnish依賴“工作區(qū)(workspace)”以降低線程在申請或修改內(nèi)存時出現(xiàn)競爭的可能性。在varnish內(nèi)部有多種不同的工作區(qū),其中最關(guān)鍵的當(dāng)屬用于管理會話數(shù)據(jù)的session工作區(qū)。

      二、VCL簡介

      Varnish Configuration Language (VCL)是varnish配置緩存策略的工具,它是一種基于“域”(domain specific)的簡單編程語言,它支持有限的算術(shù)運(yùn)算和邏輯運(yùn)算操作、允許使用正則表達(dá)式進(jìn)行字符串匹配、允許用戶使用set自定義變量、支持if判 斷語句,也有內(nèi)置的函數(shù)和變量等。使用VCL編寫的緩存策略通常保存至.vcl文件中,其需要編譯成二進(jìn)制的格式后才能由varnish調(diào)用。

      Linux中的varnish服務(wù)解析

      VCL處理過程大致分為如下幾個步驟:

      (1)Receive 狀態(tài),也就是請求處理的入口狀態(tài),根據(jù) VCL 規(guī)則判斷該請求應(yīng)該是 Pass 或
      Pipe,或者進(jìn)入 Lookup(本地查詢)。
      (2)Lookup 狀態(tài),進(jìn)入此狀態(tài)后,會在 hash 表中查找數(shù)據(jù),若找到,則進(jìn)入 Hit 狀態(tài),否則進(jìn)
      入 miss 狀態(tài)。
      (3)Pass 狀態(tài),在此狀態(tài)下,會進(jìn)入后端請求,即進(jìn)入 fetch 狀態(tài)。
      (4)Fetch 狀態(tài),在 Fetch 狀態(tài)下,對請求進(jìn)行后端的獲取,發(fā)送請求,獲得數(shù)據(jù),并進(jìn)行本地
      的存儲。
      (5)Deliver 狀態(tài), 將獲取到的數(shù)據(jù)發(fā)送給客戶端,然后完成本次請求。

      三、varnish的安裝

      1、server1中:

      1.安裝varnish

      yum install varnish-3.0.5-1.el6.x86_64.rpm varnish-libs-3.0.5-1.el6.x86_64.rpm -y

      Linux中的varnish服務(wù)解析

      2.更改varnish全局配置

      vim /etc/sysconfig/varnish

      VARNISH_LISTEN_PORT=80 #更改varnish服務(wù)端口為80

      Linux中的varnish服務(wù)解析

      Linux中的varnish服務(wù)解析

      3.更改varnish配置文件

      vim /etc/varnish/default.vcl

      backend default { #配置一個后端服務(wù)器
      .host = "172.25.4.2"; #更改訪問IP為172.25.4.2
      .port = "80";
      }

      Linux中的varnish服務(wù)解析

      Linux中的varnish服務(wù)解析

      4.重新加載服務(wù)

      /etc/init.d/varnish reload

      Linux中的varnish服務(wù)解析

      2、server2中:

      1.安裝apache

      yum install httpd -y

      Linux中的varnish服務(wù)解析

      /etc/init.d/httpd start

      Linux中的varnish服務(wù)解析

      2.制作index.html

      cd /var/www/html

      vim index.html

      server2

      Linux中的varnish服務(wù)解析

      Linux中的varnish服務(wù)解析

      3.重新加載服務(wù)

      /etc/init.d/httpd reload

      Linux中的varnish服務(wù)解析

      3、測試:

      物理機(jī)中打開firefox,訪問172.25.4.1,看到server2即配置成功

      Linux中的varnish服務(wù)解析

      四、測試緩存命中情況

      1、server1中:

      1.更改配置文件

      vim /etc/varnish/default.vcl

      添加
      sub vcl_deliver { #查看緩存命中情況
      if (obj.hits > 0) {
      set resp.http.X-Cache = "HIT from westos cache";
      }
      else {
      set resp.http.X-Cache = "MISS from westos cache";
      }
      return (deliver);
      }

      Linux中的varnish服務(wù)解析

      Linux中的varnish服務(wù)解析

      2.重新加載服務(wù)

      /etc/init.d/varnish reload

      Linux中的varnish服務(wù)解析

      2、測試:

      物理機(jī)中:

      curl -I 172.25.4.1 第一次顯示 MISS from westos cache 緩存中沒有,前往后端獲取

      Linux中的varnish服務(wù)解析

      curl -I 172.25.4.1 第二次顯示 HIT from westos cache 緩存中直接獲取

      Linux中的varnish服務(wù)解析

      3、通過 varnishadm 手動清除緩存

      varnishadm ban.url .*$ #清除所有緩存

      varnishadm ban.url /index.html #清除 index.html 頁面緩存

      varnishadm ban.url /admin/$ #清除 admin 目錄緩存

      測試:

      1.測試清除所有緩存

      物理機(jī)中curl -I 172.25.4.1兩次,使172.25.4.1緩存到cache中

      Linux中的varnish服務(wù)解析

      server1中執(zhí)行 varnishadm ban.url .*$ 清除所有緩存

      Linux中的varnish服務(wù)解析

      物理機(jī)中curl -I 172.25.4.1 ,發(fā)現(xiàn)顯示MISS from westos cache

      Linux中的varnish服務(wù)解析

      2.測試清除 index.html 頁面緩存

      物理機(jī)中curl -I 172.25.4.1/index.html兩次,使172.25.4.1/index.html緩存到cache中

      Linux中的varnish服務(wù)解析

      server1中執(zhí)行 varnishadm ban.url /index.html 清除 index.html 頁面緩存

      Linux中的varnish服務(wù)解析

      物理機(jī)中curl -I 172.25.4.1/index.html 發(fā)現(xiàn)顯示MISS from westos cache

      Linux中的varnish服務(wù)解析

      注意:

      此時如果cache中有172.25.4.1的緩存信息,使用curl -I 172.25.4.1訪問時會顯示HIT from westos cache,這是因為雖然curl -I 172.25.4.1

      和curl -I 172.25.4.1/index.html訪問得到的結(jié)果一致,但是緩存到cache中的地址不同。cache緩存的是用戶訪問的url

      拓展:

      curl -I 172.25.4.1訪問的結(jié)果中Age表示緩存時間,默認(rèn)為120s后自動清除,可在/etc/sysconfig/varnish中修改

      五、定義多個不同域名站點(diǎn)的后端服務(wù)器

      1、server3中:

      1.安裝acpache

      yum install httpd -y

      Linux中的varnish服務(wù)解析

      /etc/init.d/httpd start

      Linux中的varnish服務(wù)解析

      2.制作index.html

      cd /var/www/html

      vim index.html

      www.linux.org

      Linux中的varnish服務(wù)解析

      Linux中的varnish服務(wù)解析

      3.重新加載服務(wù)

      /etc/init.d/httpd reload

      Linux中的varnish服務(wù)解析

      2、server2中:

      1.更改index.html

      cd /var/www/html

      vim index.html

      www.westos.org

      Linux中的varnish服務(wù)解析

      Linux中的varnish服務(wù)解析

      2.重新加載服務(wù)

      /etc/init.d/httpd reload

      Linux中的varnish服務(wù)解析

      3、物理機(jī)中:

      1.添加本地解析

      vim /etc/hosts

      172.25.4.1 www.westos.org www.linux.org westos.org

      Linux中的varnish服務(wù)解析

      Linux中的varnish服務(wù)解析

      4、server1中:

      1.更改配置文件

      vim /etc/varnish/default.vcl

      backend web1 {
      .host = "172.25.4.2";
      .port = "80";
      }

      backend web2 {
      .host = "172.25.4.3";
      .port = "80";
      }

      #當(dāng)訪問 westos.org 域名時,自動訪問 www.westos.org 域名

      #當(dāng)訪問 www.westos.org 域名時從 web1 上取數(shù)據(jù),訪問 www.linux.org 域名時到 web2 取數(shù)據(jù),訪問其他頁面報錯

      sub vcl_recv {
      if (req.http.host ~ "^(www.)westos.org") {
      set req.http.host = "www.westos.org";
      set req.backend = web1;
      } elsif (req.http.host ~ "^www.linux.org") {
      set req.backend = web2;
      } else {error 404 "westos cache";
      }
      }

      Linux中的varnish服務(wù)解析

      Linux中的varnish服務(wù)解析

      2.重新加載服務(wù)

      /etc/init.d/varnish reload

      Linux中的varnish服務(wù)解析

      5、測試:

      物理機(jī)中:

      curl www.westos.org

      curl westos.org

      發(fā)現(xiàn)兩者得到的結(jié)果相同,均為server2中相應(yīng)的index.html文件內(nèi)容

      curl www.linux.org

      得到server3中相應(yīng)的index.html文件內(nèi)容

      Linux中的varnish服務(wù)解析

      六、定義負(fù)載均衡

      1、server3中:

      1.更改apache配置文件

      vim /etc/httpd/conf/httpd.conf

      打開

      NameVirtualHost *:80

      添加

      DocumentRoot /var/www/html
      ServerName www.linux.org


      DocumentRoot /www1
      ServerName www.westos.org

      Linux中的varnish服務(wù)解析

      Linux中的varnish服務(wù)解析

      Linux中的varnish服務(wù)解析

      2.建立/www1/index.html

      mkdir /www1

      vim /www1/index.html

      www.westos.org-server3

      Linux中的varnish服務(wù)解析

      Linux中的varnish服務(wù)解析

      3.重新加載服務(wù)

      /etc/init.d/httpd reload

      Linux中的varnish服務(wù)解析

      4.配置本地解析

      vim /etc/hosts

      172.25.4.3 server3 www.westos.org www.linux.org

      Linux中的varnish服務(wù)解析

      Linux中的varnish服務(wù)解析

      5.測試配置是否生效

      curl www.linux.org

      curl www.westos.org

      得到相應(yīng)的index.html文件中的內(nèi)容

      Linux中的varnish服務(wù)解析

      2、server1中:

      1.更改varnish配置

      vim /etc/varnish/default.vcl

      #把多個后端聚合為一個組,并檢測后端健康狀況

      director lb round-robin {
      { .backend = web1; }
      { .backend = web2; }
      }

      sub vcl_recv {
      if (req.http.host ~ "^(www.)westos.org") {
      set req.http.host = "www.westos.org";
      set req.backend = lb;
      } elsif (req.http.host ~ "^www.linux.org") {
      set req.backend = web2;
      } else {error 404 "westos cache";
      }
      }

      Linux中的varnish服務(wù)解析

      Linux中的varnish服務(wù)解析

      2.重新加載配置

      /etc/init.d/varnish reload

      Linux中的varnish服務(wù)解析

      3、測試:

      1.物理機(jī)中:

      curl www.westos.org 得到server2中相應(yīng)的index.html文件內(nèi)容

      Linux中的varnish服務(wù)解析

      2.server1中:

      varnishadm ban.url .*$ 清除所有緩存

      Linux中的varnish服務(wù)解析

      3.物理機(jī)中:

      curl www.westos.org 得到server3中相應(yīng)的index.html文件內(nèi)容

      Linux中的varnish服務(wù)解析

      注意:

      還可以更改server1中varnish配置文件,添加return (pass); 使得varnish緩存功能失效,客戶端直接去后端抓取內(nèi)容,可以獲得更好的

      測試對比效果

      4、server1中:

      1.更改varnish配置

      vim /etc/varnish/default.vcl

      sub vcl_recv {
      if (req.http.host ~ "^(www.)westos.org") {
      set req.http.host = "www.westos.org";
      set req.backend = lb;
      return (pass); #varnish緩存功能失效,客戶端直接去后端抓取內(nèi)容
      } elsif (req.http.host ~ "^www.linux.org") {
      set req.backend = web2;
      } else {error 404 "westos cache";
      }
      }

      Linux中的varnish服務(wù)解析

      Linux中的varnish服務(wù)解析

      2.重新加載配置

      /etc/init.d/varnish reload

      Linux中的varnish服務(wù)解析

      5、測試:

      物理機(jī)中:

      curl www.westos.org

      curl www.westos.org

      curl www.westos.org

      curl www.westos.org

      發(fā)現(xiàn)循環(huán)得到server2和server3相應(yīng)的index.html內(nèi)容

      Linux中的varnish服務(wù)解析

      此時若server2的httpd服務(wù)關(guān)閉curl會一直讀取server3相應(yīng)的index.html內(nèi)容而不會報錯,這是因為varnish擁有自動的健康檢查功能,

      若開啟server2的httpd服務(wù),使用curl又能夠循環(huán)讀取到server2和server3相應(yīng)的index.html內(nèi)容

      server2中:

      /etc/init.d/httpd stop

      Linux中的varnish服務(wù)解析

      物理機(jī)中:

      curl www.westos.org

      curl www.westos.org

      發(fā)現(xiàn)一直得到server3相應(yīng)的index.html內(nèi)容

      Linux中的varnish服務(wù)解析

      server2中:

      /etc/init.d/httpd start

      Linux中的varnish服務(wù)解析

      物理機(jī)中:

      curl www.westos.org

      curl www.westos.org

      curl www.westos.org

      curl www.westos.org

      發(fā)現(xiàn)循環(huán)得到server2和server3相應(yīng)的index.html內(nèi)容

      Linux中的varnish服務(wù)解析

      七、varnish全局配置文件中的參數(shù)

      1、NFILES #所能夠打開的最大文件數(shù)

      server1中:

      1.查看內(nèi)核允許的打開文件數(shù)的最大值

      sysctl -a | grep file

      Linux中的varnish服務(wù)解析

      2.更改varnish配置文件

      vim /etc/sysconfig/varnish

      更改NFILES數(shù)值,小于內(nèi)核允許最大值

      NFILES=66655

      Linux中的varnish服務(wù)解析

      Linux中的varnish服務(wù)解析

      3.更改系統(tǒng)限制文件

      vim /etc/security/limits.conf

      varnish nofile 66656

      Linux中的varnish服務(wù)解析

      Linux中的varnish服務(wù)解析

      2、MEMLOCK #用多大內(nèi)存空間保存日志信息

      server1中:

      1.更改varnish用戶為可交互登陸模式,切換到varnish用戶

      usermod -s /bin/bash varnish

      su – varnish

      Linux中的varnish服務(wù)解析

      2.查看系統(tǒng)允許的最大值

      ulimit -l

      Linux中的varnish服務(wù)解析

      *拓展:

      ulimit -a #查看所有系統(tǒng)限制

      Linux中的varnish服務(wù)解析

      3.更改系統(tǒng)限制文件

      logout

      vim /etc/security/limits.conf

      varnish memlock 82000

      Linux中的varnish服務(wù)解析

      Linux中的varnish服務(wù)解析

      3、NPROCS #進(jìn)程核心轉(zhuǎn)儲所使用的內(nèi)存空間,unlimited表示無上限

      server1中:

      1.切換到varnish用戶

      su – varnish

      Linux中的varnish服務(wù)解析

      2.查看系統(tǒng)允許的最大值

      ulimit -u

      Linux中的varnish服務(wù)解析

      3.更改系統(tǒng)限制文件

      logout

      vim /etc/security/limits.conf

      varnish nproc unlimited

      Linux中的varnish服務(wù)解析

      Linux中的varnish服務(wù)解析

      4.還原varnish用戶登陸設(shè)置

      usermod -s /sbin/nologin varnish

      Linux中的varnish服務(wù)解析

      注意:/etc/security/limits.conf 與 /etc/sysconfig/varnish 配置文件均是即改即生效

      拓展:

      VARNISH_TTL=120 #聯(lián)系后端服務(wù)器的超時時間

      VARNISH_STORAGE_SIZE=1G #儲存的文件的大小

      VARNISH_STORAGE_FILE=/var/lib/varnish/varnish_storage.bin #基于文件存儲時的文件路徑

      Linux中的varnish服務(wù)解析

      varnish與squid的區(qū)別

      varnish和squid在中小規(guī)模的應(yīng)用上,varnish足夠輕量級,足夠好用,但是在巨大的并發(fā)請求來說,單個varnish所能夠承載的并發(fā) 訪問量大概在5000個連接請求左右,超出5000個可能就就得不穩(wěn)定了;而在這里squid就能表現(xiàn)出良好的性能了,并且squid擁有鄰居功能,因此在大規(guī)模的企業(yè)級應(yīng)用中仍然是以squid居多,而在中小規(guī)模的自己公司的反向代理緩存中varnish居多

      8、CDN推送平臺

      1、server1:

      1.安裝apache服務(wù)

      yum install httpd -y

      Linux中的varnish服務(wù)解析

      2.更改apache服務(wù)配置

      避免與varnish服務(wù)端口沖突

      vim /etc/httpd/conf/httpd.conf

      Listen 8080

      Linux中的varnish服務(wù)解析

      Linux中的varnish服務(wù)解析

      3.下載bansys.zip包,安裝解壓縮命令

      yum install unzip -y

      unzip bansys.zip -d /var/www/html

      Linux中的varnish服務(wù)解析

      Linux中的varnish服務(wù)解析

      4.將解壓出來的目錄中的文件移動至/var/www/html

      cd /var/www/html

      cd bansys/

      mv * ..

      Linux中的varnish服務(wù)解析

      5.安裝php服務(wù)

      yum install php -y

      Linux中的varnish服務(wù)解析

      6.開啟apache服務(wù)

      /etc/init.d/httpd start

      Linux中的varnish服務(wù)解析

      7.更改php服務(wù)配置文件

      cd /var/www/html

      vim config.php

      刪除其余內(nèi)容,保留內(nèi)容如下:

      //varnish主機(jī)列表
      //可定義多個主機(jī)列表
      $var_group1 = array(
      'host' => array('172.25.4.1'),
      'port' => '80',
      );
      //varnish群組定義
      //對主機(jī)列表進(jìn)行綁定
      $VAR_CLUSTER = array(
      'www.westos.org' => $var_group1,
      );
      //varnish版本
      //2.x和3.x推送命令不一樣
      $VAR_VERSION = "3";

      >

      Linux中的varnish服務(wù)解析

      Linux中的varnish服務(wù)解析

      注意:

      bansys 有兩種工作模式,分別是:telnet 和 http 模式。

      telnet 模式需要關(guān)閉 varnish 服務(wù)管理端口的驗證,注釋掉/etc/sysconfig/varnish 文件中的

      “ -S ${VARNISH_SECRET_FILE}”這行,重啟 varnish 服務(wù)即可

      如果是 http 模式需要對 varnish 做以下設(shè)置(本次試驗采用http模式推送)

      8.更改varnish配置文件

      vim /etc/varnish/default.vcl

      #設(shè)置訪問控制

      acl westos {
      "127.0.0.1";
      "172.25.4.0"/24;
      }

      在sub vcl_recv {} 中添加

      if (req.request == "BAN") {
      if (!client.ip ~ westos) {
      error 405 "Not allowed.";
      }
      ban("req.url ~ " + req.url);
      error 200 "ban added";
      }

      刪除 return (pass);

      Linux中的varnish服務(wù)解析

      Linux中的varnish服務(wù)解析

      Linux中的varnish服務(wù)解析

      9.重新加載varnish服務(wù)

      /etc/init.d/varnish reload

      Linux中的varnish服務(wù)解析

      2、測試:

      物理機(jī)中:

      用firefox訪問www.westos.org

      打開另外一個網(wǎng)頁,用firefox訪問 172.25.4.1:8080

      Linux中的varnish服務(wù)解析

      Linux中的varnish服務(wù)解析

      推送模式:HTTP

      CDN群組:www.westos.org

      推送內(nèi)容:

      /index.html #文件

      /images/* #目錄

      本次試驗推送文件 /index.html

      推送一次,再訪問172.25.4.1:8080一次,發(fā)現(xiàn)循環(huán)讀取到server2和server3相應(yīng)的index.html內(nèi)容

      Linux中的varnish服務(wù)解析

      Linux中的varnish服務(wù)解析

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號