squid反向代理

squid

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

工做流程

a、代理服务器来接受客户端t上的链接请求html

b、代理服务器检查本身的数据缓存web

c、若是本身的缓存里有客户端请求的数据后端

d、代理服务器从缓存中取出数据,返回给客户端浏览器

e、若是本身的缓存里没有客户端请求的数据缓存

f、代理服务器向Internet 上的远端服务器发送数据请求服务器

g、远端服务器响应,返回相应的数据网络

h、代理服务器取得远端服务器的数据,返回给客户端,并保留一份到本身的数据缓存中。curl

squid分类

按照代理类型的不一样,能够将Squid代理分为正向代理和反向代理。tcp

正向代理:意思是一个位于客户端和原始服务器(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和防火墙关掉
相关文章
相关标签/搜索