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