squid作用
1正向代理
标准的代理缓冲服务器,须在每一个内部主机的浏览器上明确指明代理服务器的IP地址和端口号。
透明代理缓冲服务器,代理操作对客户端的浏览器是透明的(即不需指明代理服务器的IP和端口)Iptables或者Ipchains实现
2.Squid对架构进行优化,缓存网站,提升web应用访问性能
原理
当squid第一次接受到对特殊资源的请求时,squid经常从原始服务器确认它。假如服务器指示squid的拷贝仍然有效,数据就发送出去。否则,squid升级它的缓存拷贝,并且转发给客户。squid会清除缓存以释放空间给新对象。
工作流程
当代理服务器中有客户端需要的数据时:
a. 客户端向代理服务器发送数据请求;
b. 代理服务器检查自己的数据缓存;
c. 代理服务器在缓存中找到了用户想要的数据,取出数据;
d. 代理服务器将从缓存中取得的数据返回给客户端。
当代理服务器中没有客户端需要的数据时:
1. 客户端向代理服务器发送数据请求;
2. 代理服务器检查自己的数据缓存;
3. 代理服务器在缓存中没有找到用户想要的数据;
4. 代理服务器向Internet 上的远端服务器发送数据请求;
5. 远端服务器响应,返回相应的数据;
6. 代理服务器取得远端服务器的数据,返回给客户端,并保留一份到自己的数据缓存中
2.硬件对性能影响
内存和磁盘空间对性能有影响,内存短缺会严重影响性能。更多的磁盘空间意味着更多的缓存目标和更高的命中率。SCSI磁盘比ATA的执行性能好。基本规则是,每G磁盘空间需要32M内存。这样,512M内存的系统,能支持16G的磁盘缓存
Web缓存典型的cache命中率在30%到60%之间
squid安装
操作系统:centos6.5
squid版本:squid-3.1.23-24.el6.x86_64.rpm
3.1检查当前是否安装
rpm -qa squid
3.2 yum方式安装
yum -y install squid
4.配置
4.1安装后目录结构
主程序:
/usr/sbin/squid
脚本:
/etc/init.d/squid
配置文件
/etc/squid/squid.conf
默认访问日志文件:
/var/log/squid/access.log
4.2squid.conf文件配置
vi /etc/squid/squid.conf做如下配置
http_port 192.168.252.11:3164 #监听端口(为了安全起见,在前面加上IP地址,Squid就不会监听外部的网络接口)
cache_dir ufs /var/spool/squid 100 16 256 //定义squid的cache存放路径 cache目录容量100M 一级缓存目录16个,二级缓存目录256个
--一定要在配置文件最下方增加下面这条语句,否则squid无法启动!
visible_hostname localhost
--配置部分ip地址可访问
acl normal src 192.168.101.1-192.168.101.250/32
http_access allow normal
#cache access_log /var/log/squid/access.log 设置访问日志文件
#cache store_log /var/log/squid/store.log 设置网页缓存日志文件
#cache effective user/group squid
5.启动
--创建cache目录
cd /usr/sbin/squid
./squid -z
2017/06/30 15:13:54| Creating Swap Directories
2017/06/30 15:13:54| /var/spool/squid exists
2017/06/30 15:13:54| Making directories in /var/spool/squid/00
2017/06/30 15:13:54| Making directories in /var/spool/squid/01
2017/06/30 15:13:54| Making directories in /var/spool/squid/02
2017/06/30 15:13:54| Making directories in /var/spool/squid/03
2017/06/30 15:13:54| Making directories in /var/spool/squid/04
2017/06/30 15:13:54| Making directories in /var/spool/squid/05
2017/06/30 15:13:54| Making directories in /var/spool/squid/06
2017/06/30 15:13:54| Making directories in /var/spool/squid/07
2017/06/30 15:13:54| Making directories in /var/spool/squid/08
2017/06/30 15:13:54| Making directories in /var/spool/squid/09
2017/06/30 15:13:54| Making directories in /var/spool/squid/0A
2017/06/30 15:13:54| Making directories in /var/spool/squid/0B
2017/06/30 15:13:54| Making directories in /var/spool/squid/0C
2017/06/30 15:13:54| Making directories in /var/spool/squid/0D
2017/06/30 15:13:54| Making directories in /var/spool/squid/0E
2017/06/30 15:13:54| Making directories in /var/spool/squid/0F
iptables对应配置
如果是正常代理需要配置iptables的NAT表,对80端口的访问转发到squid端口
iptables -t nat -A PREROUTING -s 指定ip段 -p tcp --dport 80 -j REDIRECT --to-port 3164
如果是非透明代理需要开发squid的端口
iptables -A INPUT -s 指定ip段 -p tcp --dport 3164 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 3164 -j ACCEP
- 最新版CentOS6.5上安装部署ASP.NET MVC4和WebApi
最新版CentOS6.5上安装部署ASP.NET MVC4和WebApi 使用Jexus5.8.1独立版 http://www.linuxdot.net/ ps:该“独立版”支持64位的CentOS ...
- CentOS6.3编译安装Memcached
要用到如下源码包: /usr/local/src/memcached/libevent-2.0.21-stable.tar.gz /usr/local/src/memcached/memcached- ...
- CentOS6.3编译安装Memcached的PHP客户端memcache
在安装Memcached的PHP客户端memcache之前,可先看下先前的工作笔记: PHP5不重新编译,如何安装自带的未安装过的扩展,如soap扩展? 安装PHP的memcache扩展 cd /us ...
- CentOS6.3编译安装Nginx1.4.7 + MySQL5.5.25a + PHP5.3.28
[准备工作] #在编译安装lnmp之前,首先先卸载已存在的rpm包. rpm -e httpd rpm -e mysql rpm -e php yum -y remove httpd yum -y r ...
- 【PHP升级】CentOS6.3编译安装 PHP5.4.38
先前安装的PHP5.3.28(参考:CentOS6.3编译安装Nginx1.4.7 + MySQL5.5.25a + PHP5.3.28),现在准备升级PHP到5.4.38,有如下几个地方需要重新编译 ...
- CentOS6.3 编译安装LAMP(1):准备工作
卸载yum或rpm安装的amp软件 #在编译安装lamp之前,首先先卸载已存在的rpm包. rpm -e httpd rpm -e mysql rpm -e php yum -y remove htt ...
- CentOS6.3 编译安装LAMP(2):编译安装 Apache2.2.25
所需源码包: /usr/local/src/Apache-2.2.25/httpd-2.2.25.tar.gz 编译安装 Apache2.2.25 #切换到源码目录 cd /usr/local/src ...
- CentOS6.3 编译安装LAMP(2):编译安装 Apache2.4.6
Apache官方说: 与Apache 2.2.x相比,Apache 2.4.x提供了很多性能方面的提升,包括支持更大流量.更好地支持云计算.利用更少的内存处理更多的并发等.除此之外,还包括性能提升.内 ...
- CentOS6.3 编译安装LAMP(3):编译安装 MySQL5.5.25
所需源码包: /usr/local/src/MySQL-5.5.25/cmake-2.8.8.tar.gz /usr/local/src/MySQL-5.5.25/mysql-5.5.25.tar.g ...
随机推荐
- 资深程序员整理出来的Python面试题
转载链接:https://www.cnblogs.com/fcxwz/p/9225791.html
- VirtualBox网络连接方式
VirtualBox图形界面下有四种网络接入方式,它们分别是: 1.NAT 网络地址转换模式(NAT,Network Address Translation) 2.Bridged Adapter 桥接 ...
- js时间戳转化时间格式
// 判断是否前面补0 add0 (m) { return m < 10 ? '0' + m : m }, // 时间转化 timeFormat (timestamp) { // timesta ...
- Wampserver或者帝国CMS安装后, 打开localhost显示IIS欢迎界面图片
我们在安装集成环境Wampserver或者帝国CMS之后,有时会遇到一个问题, 打开localhost显示一张IIS欢迎界面图片,这个问题该如何解决呢,我在这里简单整理了一下解决方法 电脑win10系 ...
- RHEL下SendMail修改发邮箱地址
RHEL(Oracle Linxu/CentOS)系统下,如果使用sendmail发送邮件,如果不特殊设置,一般发件箱地址为user@hostname,例如,hostname为DB-Server.lo ...
- [20170604]12c Top Frequency histogram补充.txt
[20170604]12c Top Frequency histogram补充.txt 1.环境:SCOTT@test01p> @ ver1PORT_STRING ...
- uv-pv-vv的区别
UV(unique visitor) 是指自然人登录自己账号访问量 KPI是指UV PV (Page View) 是指网页的浏览量 vv(Visitor view) 是指每次登录网站的访问次数 uv- ...
- 分布式:Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)
互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,Dubbo是一个分布式服务框架,在这种情况下诞生的.现在核心业务抽取出来,作为独立的服务,使 ...
- c/c++ 图的最短路径 Dijkstra(迪杰斯特拉)算法
c/c++ 图的最短路径 Dijkstra(迪杰斯特拉)算法 图的最短路径的概念: 一位旅客要从城市A到城市B,他希望选择一条途中中转次数最少的路线.假设途中每一站都需要换车,则这个问题反映到图上就是 ...
- Windows 系统下 mysql workbench 的安装及环境配置
1.MySQL的官网地址:https://www.mysql.com/ 2,选择DOWNLOADS 3.选择community 再MySQL workbench 4.安装MySQL workbench ...