1、准备安装包

2、准备编译环境

yum -y install gcc

3、编译安装squid

./configure \
--prefix=/data/squid \
--disable-internal-dns \
--enable-forward-log   \
--enable-follow-x-forwarded-for \
--enable-snmp \
--enable-linux-netfilter  \
--enable-http-violations \
--enable-delay-pools \
--enable-storeio=diskd,aufs,ufs,coss \
--with-coss-membuf-size=8388608 \
--with-large-files \
--enable-large-cache-files \
--with-maxfd=8192 \
--enable-removal-policies=lru,heap \
--enable-useragent-log \
--enable-referer-log  \
--enable-err-languages=Simplify_Chinese \
--enable-default-err-language=Simplify_Chinese

make && make install

4、创建缓存目录

mkdir /data/squid/var/cache
chown -R nobody.nobody /data/squid/var/cache
chown -R nobody.nobody /data/squid/var/logs

5、配置squid.conf

如果WEB服务器和反向代理服务器是两台单独的机器(一般的反向代理应该有两块网卡分别连接了内外部网络)。那么,应该修改下面的内容来设置反向代理服务。

http_port 80 # squid监听的端口
httpd_accel_host 172.16.250.250 # 内部WEB服务器的IP地址
httpd_accel_port 80 # WEB服务器的IP地址
httpd_accel_single_host on # 转发为缓冲的请求到一台单独的机器
httpd_accel_with_proxy on #
httpd_accel_uses_host_header off

如果WEB服务器和反向代理服务器是同一台机器。
那么,应该设置WEB服务器的监听端口为非80端口(比如:81端口)。要修改的内容如下:
http_port 80 # squid监听的端口
httpd_accel_host localhost # 内部WEB服务器的IP地址
httpd_accel_port 81 # WEB服务器的IP地址
httpd_accel_single_host on # 转发为缓冲的请求到一台单独的机器
httpd_accel_with_proxy on #
httpd_accel_uses_host_header off

下面解释一下配置指令。

http_port 80

选项 http_port 指定squid监听HTTP请求的端口,一般都设置成80端口,这样使用户感觉不到反向代理的存在,就像访问真正的WEB服务器一样。

httpd_accel_host 172.16.250.250 和 httpd_accel_port 80

选项httpd_accel_host 和 httpd_accel_port 指定WEB服务器的IP地址和端口号,可以根据自己的WEB服务器的实际情况而定。

httpd_accel_single_host on

选项httpd_accel_single_host 为on 时,squid被设置成仅对单一的web服务器作反向代理。不考虑HTTP头信息,Squid转发所有的未被缓冲的页面请求到这个web服务器。如果squid需要做多个web服务器反向代理,必须将此选项设置为off,并且使用转向器或者DNS去映射请求到合适的后台WEB服务器。

httpd_accel_with_proxy on

如果希望squid既作反向代理服务器又作本地机器的上网代理,需要将httpd_accel_with_proxy 改为 on,默认情况下是off

httpd_accel_uses_host_header off

在HTTP协议1.1中,HTTP请求包括一个主机头信息,指定URL的主机名或者主机的IP地址。这个选项可以用来完成多个后台WEB服务器的反向代理功能。

6、启动squid

初始化你在 squid.conf 里配置的 cache 目录
/usr/local/squid/sbin/squid -zX
 
验证 squid.conf 的 语法和配置
/usr/local/squid/sbin/squid -k parse
 
前台启动squid,并输出启动过程
/usr/local/squid/sbin/squid -N -d1
出现2010/06/21 15:36:44| Ready to serve requests. 说明启动成功
然后 ctrl + c,停止squid,并以后台运行的方式启动它
 
启动squid在后台运行
/usr/local/squid/sbin/squid -s
 
停止 squid
/usr/local/squid/sbin/squid -k shutdown
要执行两次才能正常关闭squid
重引导修改过的 squid.conf
/usr/local/squid/sbin/squid -k reconfigure
 
可能通过squidclient这个工具来查看squid的运行情况,缓存命中率等
/usr/local/squid/bin/squidclient -h 10.80.11.203 -p 80 mgr:info
 
可查看各选项的使用说明
/usr/local/squid/bin/squidclient -h 10.80.11.203 -p 80 mgr:
 
内存使用情况可通过如下选项查看
/usr/local/squid/bin/squidclient -h 10.80.11.203 -p 80 mgr:mem
 
查看你的日志文档
more /usr/local/squid/var/logs/access.log | grep TCP_MEM_HIT
该指令可以看到在squid运行过程中,有那些文件被squid缓存到内存中,并返回给访问用户
more /usr/local/squid/var/logs/access.log | grep TCP_HIT
该指令可以看到在squid运行过程中,有那些文件被squid缓存到cache目录中,并返回给访问用户
more /usr/local/squid/var/logs/access.log | grep TCP_MISS
该指令可以看到在squid运行过程中,有那些文件没有被squid缓存,而是现重原始服务器获取并返回给访问用户

squid 2.7 配置与安装的更多相关文章

  1. Squid快速入门(yum安装)

    加油站代理服务器 前言 Squid是一个Linux系统下优秀的代理服务器软件.Squid可以配置普通上网代理(正向代理).反向代理.透明代理.Squid接收用户的下载申请,并自动处理所下载的数据.当一 ...

  2. Squid正向代理(编译安装)

    编译安装 版本为squid-3.5.27 系统为Centos6.5 依赖环境 yum install -y perl gcc*autoconf automake make sudo wget libx ...

  3. 阿里云服务器Linux CentOS安装配置(六)resin多端口配置、安装、部署

    阿里云服务器Linux CentOS安装配置(六)resin多端口配置.安装.部署 1.下载resin包 http://125.39.66.162/files/2183000003E08525/cau ...

  4. LINUX+Vmware+SVN的配置和安装

    LINUX+Vmware+SVN的配置和安装 验证SVN安装了没有 svnserve --version 查看CentOS自带JDK是否已安装. ◆输入:yum list installed |gre ...

  5. Hbase的配置和安装

    Hbase的配置和安装 1. 解压hbase.配置HBASE_HOME tar -zxvf hbase-1.2.4.tar.gz 2. 修改$HBASE_HOME/conf/hbase-env.sh文 ...

  6. net-snmp-5.7.3配置编译安装

    net-snmp-5.7.3配置编译安装 [TOC] 先看一下系统环境 o@o-pc:~/work/_snmp/net-snmp-5.7.3$ uname -a Linux o-pc 3.16.0-3 ...

  7. phpMyAdmin:无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装。

    一:错误提示 英文:Cannot start session without errors, please check errors given in your PHP and/or webserve ...

  8. Opencv 2.4.9在Ubuntu下的配置与安装

    [原]Opencv 2.4.9在Ubuntu下的配置安装  Opencv 2.4.9在Ubuntu下的配置与安装 surgewong@gmail.com http://blog.csdn.net/su ...

  9. 在Raspberry配置优化安装LNMP环境总结

    在Raspberry配置优化安装LNMP环境总结 apt-get update apt-get install nginx apt-get install php5-fpm php5-cli php5 ...

随机推荐

  1. JavaScript工具代码

    html编码 function htmlEscape(sHtml){ return sHtml && sHtml.replace(/[<>&"]/g, f ...

  2. 数据降维技术(1)—PCA的数据原理

    PCA(Principal Component Analysis)是一种常用的数据分析方法.PCA通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取数据的主要特征分量,常用于高维数据的降 ...

  3. java中获取路径的几种基本的方法

    package com.ygh.blog.realpath; import java.io.File; import java.io.IOException; import java.io.Input ...

  4. linux phpexcel导出后打不开

    在PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); 后面加一行 ob_clean();

  5. fedora自带OpenJDK,所以如果安装官方的JDK的话要先删除OpenJDK

    1:rpm -qa|grep jdk 查看当前的jdk情况. 2:yum -y remove java java-1.7.0-openjdk* 卸载openjdk,这个过程中因为依赖原因可能会卸载一些 ...

  6. Maven的安装及更改下载仓库

    之前在MyEclipse这个IDE中配置Maven,完成配置后启动Maven时出现-Dmaven.multiModuleProjectDirectory system propery is not s ...

  7. AssetBundle

    AssetBundle是Unity推荐的一种资源打包方式,与不使用AssetBundle相比,它有如下优点: 1.AssetBundle是经过LZMA压缩过的,所以体积更小. 2.可以将AssetBu ...

  8. linux启动过程分析

    参考:http://blog.chinaunix.net/uid-26495963-id-3066282.html http://www.comptechdoc.org/os/linux/startu ...

  9. 08-linux 其他知识

    linux其他知识点 1-防火墙- iptables原理 2- 本部分属于一步一步学习大数据系列之 Linux 的章节,欢迎订阅更多文章 更多内容请参考:一步一步学习大数据系列介绍

  10. linux 命令02

    cp 文件 路径 文件拷贝 cp -a 目录 路径 拷贝目录 cd .. 回到上一级目录 mv 需要移动目录(文件) 移动目的地 移动目录(文件) pwd 查看用户当前所在路径 ls 查看目录列表 m ...