squid反向代理
squid
工作流程
a、代理服务器来接受客户端t上的连接请求
b、代理服务器检查自己的数据缓存
c、如果自己的缓存里有客户端请求的数据
d、代理服务器从缓存中取出数据,返回给客户端
e、如果自己的缓存里没有客户端请求的数据
f、代理服务器向Internet 上的远端服务器发送数据请求
g、远端服务器响应,返回相应的数据
h、代理服务器取得远端服务器的数据,返回给客户端,并保留一份到自己的数据缓存中。
squid分类
按照代理类型的不同,可以将Squid代理分为正向代理和反向代理。
正向代理:意思是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端才能使用正向代理。
根据实现方式的不同,又可以分为普通代理和透明代理:
a、普通代理:需要客户机在浏览器中指定代理服务器的地址、端口;
b、透明代理:适用于企业的网关主机(共享接入Internet)中,客户机不需要指定代理服务器地址、端口等信息,代理服务器需要设置防火墙策略将客户机的Web访问数据转交给代理服务程序处理;
反向代理:是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。
这里我用squid做web的代理缓存服务器
主机 |
ip地址 |
client |
eth0(192.168.4.10) |
proxy |
eth0(192.168.4.11) eth1(192.168.2.11) |
web |
eth1(192.168.2.10) |
web服务器
1)使用yum安装web软件包
[root@web ~]# yum -y install httpd
2)启用httpd服务,并设为开机自动运行
[root@web ~]# echo "web" >/var/www/html/index.html
httpd服务默认通过TCP 80端口监听客户端请求:
[root@web ~]# netstat -anptu | grep 80 tcp6 0 0 :::80 :::* LISTEN 18610/httpd
代理服务器proxy
1)使用yum安装squid软件包:
[root@proxy ~]# yum -y install squid.x86_64
2)修改/etc/squid/squid.conf配置文件:
http_port 80 vhost #设置监听的IP与端口号
visible_hostname proxy.com #主机名
cache_peer 192.168.2.10 parent 80 0 originserver #定义后端真实服务器信息
cache_dir ufs /var/spool/squid 100 16 256 #定义squid的cache存放路径 、cache目录容量(单位M)、一级缓存目录数量、二级缓存目录数量 http_access allow all #允许本机所有主机使用代理服务器
3)启动squid服务,并设置为开机启动:
[root@proxy ~]# systemctl restart squid.service
[root@proxy ~]# systemctl enable squid.service
Created symlink from /etc/systemd/system/multi-user.target.wants/squid.service to /usr/lib/systemd/system/squid.service.
4)squid服务通过TCP 80端口监听客户端请求:
[root@proxy ~]# netstat -anptu | grep 80 tcp6 0 0 :::80 :::* LISTEN 18883/(squid-1)
客户端开启浏览器访问
[root@client ~]# curl http://192.168.4.11 #访问代理服务器,代理服务器会返回web服务器的内容 web
做配置之前需要报selinx和防火墙关掉
posted on 2017-09-14 12:52 抚我起来,我要学习 阅读(2276) 评论(0) 编辑 收藏 举报