CENTOS 6.6 下squid 安装配置

一、代理服务器

代理服务器(Proxy Server)是一种重要的服务器安全功能,它的工作主要在开放系统互联(OSI)模型的会话层,从而起到防火墙的作用。代理服务器大多被用来连接INTERNET(国际互联网)和Local Area Network(局域网)。

Squid cache(简称为Squid)是一个流行的自由软件,它符合GNU通用公共许可证。Squid作为网页服务器的前置cache服务器,可以代理用户向web服务器请求数据并进行缓存,也可以用在局域网中,使局域网用户通过代理上网。Squid主要设计用于在Linux一类系统运行。

squid 分类

按照代理类型的不同,可以将Squid 代理分为正向代理和反向代理,正向代理中,根据实现方式的不同,又可以分为普通代理和透明代理。

· 普通代理:需要客户机在浏览器中指定代理服务器的地址、端口;

· 透明代理:适用于企业的网关主机(共享接入Internet)中,客户机不需要指定代理服务器地址、端口等信息,代理服务器需要设置防火墙策略将客户机的Web访问数据转交给代理服务程序处理;

· 反向代理:是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。

官方地址:http://www.squid-cache.org/

参考文档:http://www.squid-cache.org/Doc/config/

操作系统:CentOS release 6.4 (Final)

二、系统环境

操作系统:CentOS release 6.6 (Final)

Squid版本:squid-3.1.10-29.el6.i686

SELINUX=disabled

HTTP Service: stoped

防火墙:普通代理模式关闭、其他模式开启

三、安装Squid服务

3.1 检查squid软件是否安装

# rpm -qa|grep squid

3.2 如果未安装,则使用yum 方式安装

# yum -y install squid

3.3 设置开机自启动

chkconfig --level 35 squid on             //在3、5级别上自动运行squid服务

四、squid服务器的配置文件说明

http_port 3128 //设置监听的IP与端口号

cache_mem 64 MB //额外提供给squid使用的内存,squid的内存总占用为 X * 10+15+“cache_mem”,其中X为squid的cache占用的容量(以GB为单位),比如下面的cache大小是100M,即0.1GB,则内存总占用为0.1*10+15+64=80M,推荐大小为物理内存的1/3-1/2或更多。

maximum_object_size 4 MB //设置squid磁盘缓存最大文件,超过4M的文件不保存到硬盘

minimum_object_size 0 KB //设置squid磁盘缓存最小文件

maximum_object_size_in_memory 4096 KB //设置squid内存缓存最大文件,超过4M的文件不保存到内存

cache_dir ufs /var/spool/squid 100 16 256 //定义squid的cache存放路径 、cache目录容量(单位M)、一级缓存目录数量、二级缓存目录数量

logformat combined %&gt;a %ui %un [%tl] "%rm %ru HTTP/%rv" %Hs %<st "%{Referer}>h" "%{User-Agent}&gt;h" %Ss:%Sh //log文件日志格式

access_log /var/log/squid/access.log combined //log文件存放路径和日志格式

cache_log /var/log/squid/cache.log //设置缓存日志

logfile_rotate 60 //log轮循 60天

cache_swap_high 95 //cache目录使用量大于95%时,开始清理旧的cache

cache_swap_low 90 //cache目录清理到90%时停止。

acl localnet src 192.168.1.0/24 //定义本地网段

http_access allow localnet //允许本地网段使用

http_access deny all //拒绝所有

visible_hostname centossd //主机名

cache_mgr [email protected] //管理员邮箱

五、普通代理服务

即标准的、传统的代理服务,需要客户机在浏览器中指定代理服务器的地址、端口。

实验拓扑图如下:

5.1 配置Squid 代理服务器IP地址

将eth0的IP地址修改为192.168.1.168(内网地址)

将eth1的IP地址修改为192.168.0.128(外网地址)

配置好后如下图所示:

5.2 编辑squid 主配置文件/etc/squid/squid.conf

把已存在的配置文件备份mv /etc/squid/squid.conf /etc/squid/squid.conf.bak

编辑配置文件vi /etc/squid/squid.conf

http_port 3128

cache_mem 64 MB

maximum_object_size 4 MB

cache_dir ufs /var/spool/squid 100 16 256

access_log /var/log/squid/access.log

acl localnet src 192.168.1.0/24

http_access allow localnet

http_access deny all

visible_hostname centossd

cache_mgr [email protected] // 可以不添加

5.3 初始化

# squid –z

几个常用命令

5.4 启动Squid

5.5 配置Web 服务器

配置服务器再次不做详述

查看web服务器ip地址

5.6 配置客户端IP地址

5.7 配置浏览器代理

5.8 测试

测试成功。

如若想测试域名访问可以通过设置本地dns或者修改hosts文件来测试,此处不做详述。

通过上图可以看到客户端可以和代理服务器端通信,不能和web服务器通信。

5.9 测试错误页面

可以看到在squid 配置文件里设置的参数在错误页面里的显示。

六、透明代理服务

适用于企业的网关主机,客户机不需要指定代理服务器地址、端口等信息,通过iptables将客户机的Web访问数据转交给代理服务程序处理。

实验拓扑图如下:

6.1 修改squid 主配置文件/etc/squid/squid.conf

在http_port 3128 后添加transparent 关键字。

http_port 3128 transparent

cache_mem 64 MB

maximum_object_size 4 MB

cache_dir ufs /var/spool/squid 100 16 256

access_log /var/log/squid/access.log

acl localnet src 192.168.1.0/24

http_access allow localnet

http_access deny all

visible_hostname centossd

cache_mgr [email protected]

6.2 reload

reload 让上面的配置生效。

# /etc/init.d/squid reload

6.3 添加iptables规则,把内部的http请求重定向到3128端口

a) 启动iptables服务

b) [[email protected] Desktop]# service iptables start

c) iptables: Applying firewall rules: [ OK ]

d) 清除现有规则

e) 保存iptables 设置

f) 查看nat表

g) 添加nat规则并保存

配置iptables设定nat,即透明代理
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-ports 3128
如果只设置下面一句而上面一句不设置,客户端也可以上网,只是不通过squid哈~
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

保存iptables设置
service iptables save

6.4 客户端设置

1) 设置网络

将网关设置为代理服务器内网地址

2) 在浏览器中将使用代理服务器选项勾除。

6.5 浏览器访问测试

说明透明代理设置成功

七、反向代理服务

为Internet用户访问企业Web站点提供缓存加速。

实验拓扑图如下:

内网服务器是server 2008 R2

7.1 关闭内网服务器防火墙

7.2 修改Web Server 主页

创建目录和主页

7.3 配置squid

http_port 80 accel vhost //这个参数的用于支持主机映射

http_access allow all

cache_peer 192.168.1.118 parent 80 0 originserver round-robin weight=1 //指定第1台真实服务器的位置

cache_peer 192.168.1.119 parent 80 0 originserver round-robin weight=1 //指定第2台真实服务器的位置

visible_hostname centossd

7.4 启动Squid服务

注:要确保80端口没被使用

7.6 测试

squid 采用了round-robin,所以客户端的访问将轮询两台web服务器,采用 "Ctrl + F5" 来深度刷新测试。

web1

web2

八、日志

再来看看日志信息。如图,所有的行为都被日志记载。

使用tail –f 可以实时监控日志最后一行的变化。

注: 此文有参阅http://zpp2009.blog.51cto.com/730423/297023

http://bbs.51cto.com/thread-564760-1.html

http://www.cnblogs.com/mchina/p/3812190.html

三篇文章 ,感谢三位博主!

时间: 2024-10-09 22:22:46

CENTOS 6.6 下squid 安装配置的相关文章

CentOS 6.6下NFS安装配置

一.环境介绍 NFS服务器:CentOS6.6 192.168.1.116 NFS客户端:CentOS5.5 192.168.1.114 二.服务器端安装配置 1.先用rpm -qa命令查看所需安装包(nfs-utils.rpcbind)是否已经安装: # rpm -qa | grep "rpcbind" rpcbind-0.2.0-11.el6.i686 # rpm -qa | grep "nfs" nfsometer-1.6-1.el6.noarch nfs-g

CentOS 6.6下Redis安装配置记录

转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/120.html?1455855209 在先前的文章中介绍过redis,以下内容为自己在CentOS上安装Redis的记录.供后期在做改进. 1.安装需要的支持环境 在安装Redis之前首要先做的是安装Unix的Tcl工具?,如果不安装的话后期将无法对Redis进行测试.在后期执行make test的时候返回如下错误信息:You need tcl 8.xuyao de5 o

CentOS下Redisserver安装配置

1.CentOS 6.6下Redis安装配置记录 2.CentOS下Redisserver安装配置

CentOS 6.4下Squid代理服务器的安装与配置

一.简介 代理服务器英文全称是Proxy Server,其功能就是代理网络用户去取得网络信息. Squid是一个缓存Internet 数据的软件,其接收用户的下载申请,并自动处理所下载的数据.当一个用户想要下载一个主页时,可以向Squid 发出一个申请,要Squid 代替其进行下载,然后Squid 连接所申请网站并请求该主页,接着把该主页传给用户同时保留一个备份,当别的用户申请同样的页面时,Squid 把保存的备份立即传给用户,使用户觉得速度相当快.Squid 可以代理HTTP.FTP.GOPH

centos下smartctl安装配置(硬盘S.M.A.R.T信息及坏块检测命令)

centos下smartctl安装配置 一.什么是S.M.A.R.T. SMART是一种磁盘自我分析检测技术,早在90年代末就基本得到了普及 每一块硬盘(包括IDE.SCSI)在运行的时候,都会将自身的若干参数记录下来 这些参数包括型号.容量.温度.密度.扇区.寻道时间.传输.误码率等 硬盘运行了几千小时后,很多内在的物理参数都会发生变化 某一参数超过报警阈值,则说明硬盘接近损坏 此时硬盘依然在工作,如果用户不理睬这个报警继续使用 那么硬盘将变得非常不可靠,随时可能故障. 二.安装 yum in

CentOS下NTP安装配置

安装yum install ntp 配置文件 /etc/ntp.confrestrict default kod nomodifynotrap nopeer noqueryrestrict -6 default kod nomodify notrap nopeer noqueryrestrict 127.0.0.1restrict -6 ::1# 用restrict控管权限# nomodify - 用户端不能更改ntp服务器的时间参数# noquery - 用户端不能使用ntpq,ntpc等命令

CentOS 6.5下编译安装httpd+mysql+php+phpMyAdmin

CentOS 6.5下编译安装httpd+mysql+php+phpMyAdmin+cacti+nagios 一.安装环境 Linux系统:CentOS 6.5 Apache版本:http-2.4.12 MySQL版本:MySQL 5.6.24 PHP版本:PHP-5.6.8 基本的安装顺序为:先安装httpd,然后安装mysql,最后安装PHP. 软件包: [[email protected] httpdbao]# ll total 334908 -rwxrw-rw-. 1 root root

Linux下PHP安装配置MongoDB数据库连接扩展

说明: 操作系统:CentOS 5.X 64位 MongoDB数据库服务器: IP地址:192.168.21.130 Web服务器: IP地址:192.168.21.127 PHP安装路径:/usr/local/php 实现目的: 安装PHP的MongoDB数据库扩展,通过PHP程序连接MongoDB数据库 具体操作: 一.安装PHP的MongoDB数据库扩展(在Web服务器192.168.21.127上操作) 下载地址:http://pecl.php.net/get/mongo-1.5.1.t

Cloudera hadoop-2.3.0-cdh5.1.0 在Centos 6.5 下的安装

安装前准备 1.  虚拟机3个,安装Centos 6.5, 内存设置为4GB 2.  配置yum源为163(不配置,在安装软件时,慢的要死) 3. 关闭防火墙( iptables),disabled SELinux 4. 配置静态IP,并在/etc/hosts中将Hadoop集群中的主机名加进去 安装 1. 在Cloudera官网上下载 cloudera-manager-installer.bin 2. 直接运行 cloudera-manager-installer.bin 3. 通过安装好的c