1. 程式人生 > >Squid代理服務器 、 Varnish服務器

Squid代理服務器 、 Varnish服務器

squid 、 varnish





代理服務器:
什麽是代理服務器?
簡單舉個例子,假設百度的Web服務器在北京,當我們訪問百度的服務器時,我們的請求並不是發送到北京的Web服務器,而是通過代理服務器來實現。
比如我們在上海,服務器在北京,那我們去訪問百度,距離長,訪問速度慢。所以我們就可以在上海搭建一個代理服務器。

應用場景:
Web訪問加速
IP偽裝,×××

#########################################################################################################

squid軟件:
反向:加速網頁服務
正向:×××

準備三臺虛擬機:
Web1:用來模擬總服務器
eth1網卡:192.168.2.100
Proxy:用來模擬代理服務器
eth0網卡:192.168.4.5
eth1網卡:192.168.2.5
Client:用來模擬客戶端
eth0網卡:192.168.4.100

防火墻設置為trusted
selinux設置為permissive

###################################################################################################

Web1虛擬機:
#yum -y install httpd //裝包
#systemctl restart httpd //啟動服務
#systemctl enbale httpd //設置隨機自啟
#echo "192.168.2.100" > /var/www/html/index.html //書寫頁面

Proxy虛擬機:
#yum -y install squid //裝包


#vim /etc/squid/squid.conf //修改配置文件
http_access allow all //允許所有客戶端訪問
http_port 80 vhost //將端口改為80端口
visible_hostname www.sina.com //www.sina.com 可隨意更改。相當於代理服務器的網站名稱,目的就是讓訪問本服務器的客戶端認為它就是sina的主服務器。
cache_peer 192.168.2.100 parent 80 0 originserver //指定後端(提供頁面的)服務器。
cache_dir ufs /var/spool/squid 100 16 256 //緩存頁面的存放位置及大小。100 指的是大小為100M 有16個主目錄,每個主目錄下有256個子目錄。


#yum -y restart squid //啟動服務
#yum -y enable squid //隨機自啟


#curl (-i) http://192.168.4.5 //驗證,-i可以查看詳細信息
192.168.2.100


#cd /var/log/squid //squid日誌的存放位置
access.log cache.log squid.out //access.log服務日誌
#ls /var/spool/squid/ //squid的緩存頁面的存放位置

註意:因為squid占用的為80端口,所以在使用squid時,確保80端口未被占用。
#########################################################################################

varnish軟件:

配置varnish緩存服務器來加速web訪問

yum源中沒有varnish軟件,需要我們進行源碼包編譯安裝:

Proxy虛擬機:

#yum -y install gcc readline-devel pcre-devel //安裝軟件依賴包
# useradd -s /sbin/nologin varnish //創建普通用戶,防止攻擊。
# tar -xzf varnish-3.0.6.tar.gz //解包
# cd varnish-3.0.6
# ./configure --prefix=/usr/local/varnish //指定安裝路徑
# make && make install //編譯安裝
#cp redhat/varnish.initrc /etc/init.d/varnish //復制啟動腳本
# cp redhat/varnish.sysconfig /etc/sysconfig/varnish //復制配置文件
# ln -s /usr/local/varnish/sbin/varnishd /usr/sbin/ //創建軟鏈接,

前端配置(面向客戶端):
#vim /etc/sysconfig/varnish //修改配置文件
VARNISH_LISTEN_PORT=80 //監聽端口為80
VARNISH_STORAGE_SIZE=64M //設置存儲大小為64M
VARNISH_STORGE="malloc,${VARNISH_STORGE_SIZE}" //設置存儲位置,malloc為內存

後端配置(面向服務端)
# vim /etc/varnish/default.vcl //修改配置文件
backend default {
.host = "192.168.2.100"; //指定後端服務器(提供頁面的服務器)
.port = "80";
}


#/etc/init.d/varnish start //啟動服務

#curl http://192.168.4.5 //驗證

#varnishlog //varnish日誌,可以看出代理一直在件口後臺服務器,確保服務器能正常提供頁面。
#varnishncsa //訪問日至。




更新緩存數據:
客戶在訪問時,都是訪問的代理服務器,代理服務器會提供緩存頁面,那當我們的後臺頁面發生改變時,我們的客戶端怎樣才能達到更新。
1.等,大約需要2-3分鐘
2.實時更新
後端web
#echo "cc" > /var/www/html/c.html
客戶端訪問
#curl http://192.168.4.5/c.html
後端web
#echo "XX" > /var/www/html/c.html
客戶端訪問
#curl http://192.168.4.5/c.html 【過期】

代理更新:
#varnishadm -S /etc/varnish/secret -T 127.0.0.1:6082
ban.url 頁面文件名 //清空緩存數據,支持正則表達式。

























Squid代理服務器 、 Varnish服務器