squid----正向代理

代理服务器squid简介

Squid cache(简称为Squid)是一个流行的自由软件(GNU通用公共许可证)的代理服务器和Web缓存服务器。Squid有广泛的用途,从作为网页服务器的前置cache服务器缓存相关请求来提高Web服务器的速度,到为一组人共享网络资源而缓存万维网,域名系统和其他网络搜索,到通过过滤流量帮助网络安全,到局域网通过代理上网。Squid主要设计用于在Unix一类系统运行。

squid可以做代理也可以做缓存。

squid不仅可以做正向代理,又可以做反向代理。

正向代理,squid后面是客户端,客户端上网要通过Squid去上;反向代理,squid后面是服务器,服务器返回给用户数据需要走squid。

正向代理用在企业的办公环境中,员工上网需要通过squid代理来上网,这样可以节省网络带宽资源。而反向代理用来搭建网站静态项(图片、html、流媒体、js、css等)的缓存服务器,它用于网站架构中。

 

环境:

客户端:172.16.0.210/24

代理服务器:172.16.0.101/24,172.16.1.101/24

web服务器:172.16.1.11/24

现状:客户端既不能访问外网,也不能访问web服务器。

目标:让客户端能访问外网,同时也能访问web服务器。

 

安装squid

在代理服务器上

yum -y install squid

 

配置squid

vim /etc/squid/squid.conf

找到如下配置

http_access  allow  all    #允许所有网段的请求

http_port   8888    #squid的http代理端口

 

开放防火墙

firewall-cmd  --add-port=8888/tcp  --permanent

firewall-cmd  --reload

 

客户端

linux系统

设置全局代理

vim  /etc/profile

http_proxy="http://172.16.0.101:8888"
export http_proxy

读取配置

source   /etc/profile

 

火狐浏览器

设置--高级

 

 

测试

代理成功

 

squid的配置详解

#vi /etc/squid/squid.conf

#http_port指令告诉squid在哪个端口侦听HTTP请求。默认端口是3128,除下面的形式外,也可以是http_port 192.168.63.50:3128
http_port 3128
icp_port 3130

#缓存目录的设置,可以设置多个缓存目录,语法为:<cache_dir> <aufs|ufs> <目录所在> <MBytes大小> <dir1> <dir2>
cache_dir ufs /var/spool/squid 1000 64 1024

#下面是关于日志文件的放置目录与文件名!
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log
pid_filename /var/run/squid.pid

#关闭认证机制,有些版本的 squid 会自动的加入代理认证机制,而普通情况下是不需要的,故找到包括auth_param的行,给它们加上注释
#auth_param basic children 5
#auth_param basic realm Squid proxy-caching web server
#auth_param basic credentialsttl 2 hours

#设置squid用户及用户组、管理员账号
cache_effective_user squid
cache_effective_group squid 
cache_mgr youraccount@your.e.mail

# 与内存有关的配置:因为我的系统内存很小,所以只给 8 MB!如果您的物理内存很大的情况下,例如 512 MB,可以考虑加大到 64 或 128 MB。
cache_mem 128 MB

# 与磁盘容量有关的配置(注:下列的 90 与 95 是百分比 ),如果您的 cache_dir 所在磁盘很大时,可以考虑将 4096 改成 32768 KB
cache_swap_low 90
cache_swap_high 95
maximum_object_size 4096 KB

# 与内存保存资料有关的配置
maximum_object_size_in_memory 8 KB

#定义acl(访问控制列表), 语法为:acl<acl> <acl名称> <acl类型> <配置的内容>
#黑体为用户自定义部分

acl All src 0/0 
acl Manager proto cache_object 
acl Localhost src 127.0.0.1/32 
acl Safe_ports port 80 21 443 563 70 210 280 488 591 777 1025-65535 
acl SSL_ports 443 563 
acl CONNECT method CONNECT 
acl MyNetwork src 192.168.0.0/16

#利用前面定义的acl,定义访问控制规则
http_access allow Manager Localhost
http_access deny Manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow MyNetwork
http_access deny All

#定义与其它代理服务器的关系,语法: <cache_peer> <主机名称> <类别> <http_port> <icp_port> <其它参数>
cache_peer 192.168.60.6 parent 4480 7 no-query default

#设置与其它代理服务器的关系:
# <cache_peer_access> <上层 Proxy > <allow|deny> <acl名称>
#cache_peer_access 192.168.60.6 allow aclxxx 
#cache_peer_access 192.168.60.6 deny !aclxxx

coredump_dir /var/spool/squid

 

posted @ 2018-10-24 18:03  喜欢it的小聪聪  阅读(742)  评论(0编辑  收藏  举报