Squid 和 Varnish 代理服務器的簡單搭建
阿新 • • 發佈:2018-02-02
dmi 客戶 yum 客戶端訪問 清除 支持 pre ces sys 一. Squid代理服務器(功能全,速度相對varnish慢)
1.裝包yum -y install squid
2.修改配置文件:vim /etc/squid/squid.conf
http_port 80 vhost (修改第59行;下面內容自己添加)
visible_hostname www.haha.com(設置自己的代理服務的名字,用於客戶訪問代理服務器)
cache_peer 192.168.2.100 parent 80 0 originserver(定義後端服務器)
cache_dir ufs /var/spool/squid 200 16 256 (設置硬盤緩存容量為200M
自動創建16個一級子目錄和256個二級子目錄)
http_access allow all (修改56行,允許所有主機使用代理服務器)
3.重啟服務設置開機自啟。netstat -antpu | grep 80 查看squid是否啟用
4.用客戶端驗證 cd到解壓出來的軟件包中;cp redhat/varnish.initrc /etc/init.d/varnish
cp redhat/varnish.sysconfig /etc/sysconfig/varnish (復制配置文件)
ln -s /usr/local/varnish/sbin/varnishd /usr/sbin/ (創建快捷方式)
ln -s /usr/local/varnish/bin/ /usr/bin/
3.修改前端配置:vim /etc/sysconfig/varnish
VARNISH_LISTEN_PORT=80 (修改66行, 默認端口)
VARNISH_STORAGE_SIZE=64M (修改89行,定義緩存大小)
VARNISH_STORAGE="malloc,${VARNISH_STORAGE_SIZE}"(修改92,基於內存方式緩存)
4.修改後端配置(代理配置文件) vim /etc/varnish/default.vcl
mkdir /etc/varnish
cp /usr/local/varnish/etc/default.vcl /etc/varnish
uuidgen > /etc/varnish/secret
vim /etc/varnish/default.vcl (取消註釋即可)
backend default {
.host = "192.168.2.100"; (定義後端服務器)
.port = "80"; (定義端口號)
}
5.重啟服務:/etc/init.d/varnish start
6.客戶端訪問;
7.日誌的使用:
varnishlog (軟件本身日誌,在內存裏)
varnishncsa (訪問日誌,沒人訪問則沒有日誌)
8.問題:vanish 代理主要采用了緩存技術,存在的一個問題是,如果web服務更新了頁面,會導致客戶端訪問頁面時,還是舊的,不能立即同步(軟件有自動更新緩存,但有時間);如果想立即同步,需要手動清除緩存
varnishadmin -S /etc/varnish/secret -T 127.0.0.1:6082 (交互式)
(/etcc/varnish/secret 密碼存放文件)(6082 僅管理員使用的端口)
storage.list (列出緩存)
backend.list (列出後端服務器)
ban.url .(清理所有)(支持正則;清除緩存)
ban.url 2.html (2.html是源站點)
1.裝包yum -y install squid
2.修改配置文件:vim /etc/squid/squid.conf
http_port 80 vhost (修改第59行;下面內容自己添加)
visible_hostname www.haha.com(設置自己的代理服務的名字,用於客戶訪問代理服務器)
cache_peer 192.168.2.100 parent 80 0 originserver(定義後端服務器)
cache_dir ufs /var/spool/squid 200 16 256 (設置硬盤緩存容量為200M
自動創建16個一級子目錄和256個二級子目錄)
3.重啟服務設置開機自啟。netstat -antpu | grep 80 查看squid是否啟用
4.用客戶端驗證
二. Varnish代理服務器(加速web,性能好,速度快,緩存數據在內存)
1.安裝Varnish源碼包和安裝依賴包yum -y install gcc readline-devel pcre-devel
解壓源碼包,cd進去,執行./configure --prefix=/usr/local/varnish指定安裝路徑
然後make && make install 編譯安裝;
2.復制啟動腳本和配置文件
cp redhat/varnish.sysconfig /etc/sysconfig/varnish (復制配置文件)
ln -s /usr/local/varnish/sbin/varnishd /usr/sbin/ (創建快捷方式)
ln -s /usr/local/varnish/bin/ /usr/bin/
3.修改前端配置:vim /etc/sysconfig/varnish
VARNISH_LISTEN_PORT=80 (修改66行, 默認端口)
VARNISH_STORAGE_SIZE=64M (修改89行,定義緩存大小)
4.修改後端配置(代理配置文件) vim /etc/varnish/default.vcl
mkdir /etc/varnish
cp /usr/local/varnish/etc/default.vcl /etc/varnish
uuidgen > /etc/varnish/secret
vim /etc/varnish/default.vcl (取消註釋即可)
backend default {
.host = "192.168.2.100"; (定義後端服務器)
.port = "80"; (定義端口號)
}
5.重啟服務:/etc/init.d/varnish start
6.客戶端訪問;
7.日誌的使用:
varnishlog (軟件本身日誌,在內存裏)
varnishncsa (訪問日誌,沒人訪問則沒有日誌)
8.問題:vanish 代理主要采用了緩存技術,存在的一個問題是,如果web服務更新了頁面,會導致客戶端訪問頁面時,還是舊的,不能立即同步(軟件有自動更新緩存,但有時間);如果想立即同步,需要手動清除緩存
varnishadmin -S /etc/varnish/secret -T 127.0.0.1:6082 (交互式)
(/etcc/varnish/secret 密碼存放文件)(6082 僅管理員使用的端口)
storage.list (列出緩存)
backend.list (列出後端服務器)
ban.url .(清理所有)(支持正則;清除緩存)
ban.url 2.html (2.html是源站點)
varnishadm –S /etc/varnish/secret –T 127.0.0.1:6082 ban.url 頁面文件名
(非交互式)
Squid 和 Varnish 代理服務器的簡單搭建