squid反向代理

squid

Squid是一个高性能的代理缓存服务器,Squid支持FTP、gopher和HTTP协议。和一般的代理缓存软件不同,Squid用一个单独的、非模块化的、I/O驱动的进程来处理所有的客户端请求。

工作流程

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  抚我起来,我要学习  阅读(2162)  评论(0编辑  收藏  举报