代理服务器:
什么是代理服务器?
简单举个例子,假设百度的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 页面文件名    //清空缓存数据,支持正则表达式。