Linux服務(wù)篇之 Varnish第一篇
簡(jiǎn)介
- Varnish 的作者Poul-Henning Kamp是FreeBSD的內(nèi)核開(kāi)發(fā)者之一亥曹,他認(rèn)為現(xiàn)在的計(jì)算機(jī)比起1975年已經(jīng)復(fù)雜許多禽拔。
- 在1975年時(shí),儲(chǔ)存媒介只有兩種:內(nèi)存與硬盤(pán)晕窑。
- 但現(xiàn)在計(jì)算機(jī)系統(tǒng)的內(nèi)存除了主存外抑片,還包括了CPU內(nèi)的L1、L2杨赤,甚至有L3快取敞斋。硬盤(pán)上也有自己的快取裝置截汪,因此Squid
- Cache自行處理物件替換的架構(gòu)不可能得知這些情況而做到最佳化,但操作系統(tǒng)可以得知這些情況植捎,所以這部份的工作應(yīng)該交給操作系統(tǒng)處理衙解,這就是 Varnish cache設(shè)計(jì)架構(gòu)
- varnish項(xiàng)目是2006年發(fā)布的第一個(gè)版本0.9.距今已經(jīng)有十年了,此文檔之前也提過(guò)varnish還不穩(wěn)定焰枢,那是2007年時(shí)候編寫(xiě)的蚓峦,經(jīng)過(guò)varnish開(kāi)發(fā)團(tuán)隊(duì)和網(wǎng)友們的辛苦耕耘,現(xiàn)在的varnish已經(jīng)很健壯济锄。很多門(mén)戶網(wǎng)站已經(jīng)部署了varnish暑椰,并且反應(yīng)都很好,甚至反應(yīng)比squid還穩(wěn)定荐绝,且效率更高一汽,資源占用更少
Varnish安裝與測(cè)試
- 首先我們要準(zhǔn)備三臺(tái)機(jī)器、一臺(tái)做Varninsh另外兩臺(tái)做Web服務(wù)器低滩、我給他們?nèi)b的時(shí)CentOS 7.3的系統(tǒng)
- 系統(tǒng)準(zhǔn)備好了以后角虫、我們要用命令測(cè)試下你的epel源的環(huán)境、可以用以下命令來(lái)測(cè)試
[root@vsrnish ~]# yum repolist
Loaded plugins: fastestmirror
Repository 'base' is missing name in configuration, using id
Repository 'epel' is missing name in configuration, using id
Loading mirror speeds from cached hostfile
repo id repo name status
base base 9,363
epel epel 11,349
repolist: 20,712
- 源配好了以后委造,為了方便區(qū)分主機(jī)、需要來(lái)修改主機(jī)名均驶、可以用以下命令來(lái)修改
[root@vsrnish ~]# hostnamectl set-hostname varnish
- 主機(jī)名修改好了以后那就開(kāi)始昏兆、同步時(shí)間、同步時(shí)間妇穴,我們首先我們需要安裝ntpdate 爬虱,但是前提你有時(shí)間服務(wù)器,怎么搭建時(shí)間服務(wù)器腾它,以后我在寫(xiě)教程
[root@vsrnish ~]# yum install ntpdate -y
- 安裝以后我們就可以同步時(shí)間了
[root@vsrnish ~]# ntpdate 172.16.0.1
8 Sep 16:41:22 ntpdate[3455]: step time server 172.16.0.1 offset -28747.398358 sec
- 時(shí)間同步以后跑筝、我們就先去安裝下varnish
[root@vsrnish ~]# yum install varnish -y
- 安裝完畢以后,就先跳過(guò)這臺(tái)服務(wù)器瞒滴,我們要去配置第二臺(tái)服務(wù)器曲梗、我要去給他安裝
httpd
和php
[root@httpd ~]# yum install httpd php -y
- 安裝完畢以后我們要去添加個(gè)配置文件
[root@httpd ~]# vim /var/www/html/test.html
- 打開(kāi)以后在里面填寫(xiě),這是個(gè)測(cè)試頁(yè)
<h1> Test Page @BE httpd </h1>
- 填寫(xiě)完畢以后妓忍,我們要去添加另外一個(gè)配置文件
[root@httpd ~]# vim /var/www/html/info.php
- 打開(kāi)以后虏两,在里面添加
<?php
phpinfo();
?>
- 添加完畢以后我們就可以啟動(dòng)http服務(wù)了
[root@httpd ~]# systemctl start httpd.service
- 啟動(dòng)以后我們查看下
[root@httpd ~]# ss -nutl
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
udp UNCONN 0 0 *:29475 *:*
udp UNCONN 0 0 127.0.0.1:323 *:*
udp UNCONN 0 0 *:68 *:*
udp UNCONN 0 0 :::65264 :::*
udp UNCONN 0 0 ::1:323 :::*
tcp LISTEN 0 128 *:22 *:*
tcp LISTEN 0 100 127.0.0.1:25 *:*
tcp LISTEN 0 128 :::80 :::*
tcp LISTEN 0 128 :::22 :::*
tcp LISTEN 0 100 ::1:25 :::*
- 我們?cè)诓樵冞@臺(tái)電腦的ip,并且記住
[root@httpd ~]# ip a
- 在我們的游覽器查看下輸入,(注意這時(shí)我電腦的IP你電腦IP不同世剖,請(qǐng)不要復(fù)制粘貼)
http://172.16.251.146/test.html
- 看你的游覽器會(huì)出現(xiàn)定罢,下圖圖片不
- 接下在你的游覽器輸入
http://172.16.251.146/info.php
- 看會(huì)出現(xiàn)以下圖片不
- 如果都出現(xiàn)表示你第二臺(tái)服務(wù)器啟動(dòng)成功
- 那我們就回到第一臺(tái)電腦,編輯第一臺(tái)電腦vcl文件
vim /etc/varnish/default.vcl
- 把里面IP和端口修改成我們第二臺(tái)電腦的IP和端口
backend default {
.host = "172.16.251.146";
.port = "80";
}
- 修改完成以后我們啟動(dòng)第一臺(tái)電腦旁瘫,也就是varnish
[root@vsrnish ~]# systemctl start varnish.service
- 我們來(lái)查詢下看啟動(dòng)成功沒(méi)有
[root@vsrnish ~]# ss -nutl
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
udp UNCONN 0 0 *:68 *:*
udp UNCONN 0 0 *:48242 *:*
udp UNCONN 0 0 :::13191 :::*
tcp LISTEN 0 128 *:80 *:*
tcp LISTEN 0 128 *:22 *:*
tcp LISTEN 0 100 127.0.0.1:25 *:*
tcp LISTEN 0 10 127.0.0.1:6082 *:*
tcp LISTEN 0 128 :::80 :::*
tcp LISTEN 0 128 :::22 :::*
tcp LISTEN 0 100 ::1:25 :::*
- 已經(jīng)成功開(kāi)啟祖凫,接下來(lái)我們用第一臺(tái)的IP來(lái)訪問(wèn)下
http://172.16.251.136/test.html
http://172.16.251.136/info.php
- 如果顯示的話就已經(jīng)成功琼蚯,但是這不是我們的目的,但是這是基礎(chǔ)惠况,請(qǐng)看第二篇