简介:

Squid 反向代理常用于服务器端,客户端访问 Squid 代理服务器的 80 端口,Squid 代理服务器根据配置去请求后端的 web 服务器,

然后将请求到的信息保存在本地并回传给客户端,当又有客户端请求相同资源时,Squid 代理服务器直接将缓存中的信息回传给客户端。

一、安装 Squid

shell > ulimit -n  # 默认打开文件描述符为  ,要增大它

shell > vim /etc/security/limits.conf

* - nofile 

## 定义单个用户的最大打开文件数为 65535 ,要重启服务器生效 ,如果线上服务器不方便重启,那么就使用 ulimit -n 65535 来临时修改

shell > vim /etc/selinux/config

SELINUX=enforcing  # 将 enforcing 改为 disabled ,同样要重启服务器生效,不方便的话可以使用 setenforce  来临时关闭 SELinux

shell > reboot

shell > ulimit -n

shell > getenforce
Disabled

## 再次确认已经修改成功

shell > yum -y install squid

shell > rpm -qa squid
squid-3.1.-.el6.x86_64

二、配置反向代理

shell > mkdir /opt/squid_cache  # 创建缓存目录

shell > chown -R squid.squid /opt/squid_cache  # 更改属主、属组

shell > > /etc/squid/squid.conf  # 清空默认配置文件

shell > vim /etc/squid/squid.conf

cache_effective_user squid
cache_effective_group squid ## 启动 Squid 用户、组 http_port 192.168.1.88: accel vhost ## 将端口监听在 192.168.1.88 上,accel 指加速模式,vhost 用于转发请求 dns_nameservers 8.8.8.8 ## 为了使 Squid 能解析域名需定义真实 DNS 地址 visible_hostname study.localhost.localdomain ## 计算机名,可以为 IP 地址,用于错误页面的显示 cache_mgr wangxiaoqiang888@.com ## 管理员邮箱地址,用于错误页面上的显示 cache_mem MB ## 内存缓存大小,指定可以使用多少物理内存作为高速缓存。如果此服务器就是专门的缓存服务器,可以指定为物理内存的一半。否则不应大于三分之一 cache_dir ufs /opt/squid_cache ## 缓存目录大小为 4G ,这个可以按实际磁盘大小来定,有 二级目录,每个二级目录下有 个子目录 maximum_object_size MB ## 最大缓存文件大小为 4MB ,超过的直接传给用户,不作缓存 cache_access_log /var/log/squid/access.log ## 访问日志文件路径,记录了用户访问 Internet 的详细信息,可以查看每用户的上网记录 cache_log /var/log/squid/cache.log ## 缓存日志文件路径,记录了缓存相关的日志信息 cache_store_log /var/log/squid/store.log ## 网页缓存日志文件路径,记录了网页在缓存中调用情况 logfile_rotate ## 日志轮转, 代表保留 个旧的日志跟 个新日志( 需配合 crond 来使用 ) cache_swap_high ## 缓存磁盘空间大于 % 时自动清理 cache_swap_low ## 清理到 % 时停止 cache_peer 192.168.1.80 parent originserver name=sina
cache_peer 192.168.1.80 parent originserver name=baidu ## cache_peer 指定后端服务器地址, 为后端服务端口, 为 ICP 端口号(多个 Squid 时用),originserver 指定资源服务器,name 指定一个别名 cache_peer_domain sina sina.com www.sina.com
cache_peer_domain baidu baidu.com www.baidu.com ## 指定对应关系,当用户请求 baidu.com 或 www.baidu.com 时,转发到别名为 baidu 的真实服务器上 http_access allow all ## 允许所有人访问代理服务器(必须开启)

三、初始化 Squid

shell > squid -z
// ::| Creating Swap Directories
// ::| /opt/squid_cache exists
// ::| Making directories in /opt/squid_cache/
// ::| Making directories in /opt/squid_cache/
// ::| Making directories in /opt/squid_cache/
// ::| Making directories in /opt/squid_cache/
// ::| Making directories in /opt/squid_cache/
// ::| Making directories in /opt/squid_cache/
// ::| Making directories in /opt/squid_cache/
// ::| Making directories in /opt/squid_cache/
// ::| Making directories in /opt/squid_cache/
// ::| Making directories in /opt/squid_cache/
// ::| Making directories in /opt/squid_cache/0A
// ::| Making directories in /opt/squid_cache/0B
// ::| Making directories in /opt/squid_cache/0C
// ::| Making directories in /opt/squid_cache/0D
// ::| Making directories in /opt/squid_cache/0E
// ::| Making directories in /opt/squid_cache/0F

四、启动 Squid

shell > service squid start
正在启动 squid:. [确定]
shell > chkconfig --add squid
shell > chkconfig --level squid on
shell > netstat -anpt | grep squid
tcp 192.168.1.88: 0.0.0.0:* LISTEN /(squid)

五、测试

shell > cat /var/log/squid/access.log | grep TCP_MISS

1420537525.011      192.168.1.110 TCP_MISS/  GET http://alabo.com/favicon.ico - FIRST_UP_PARENT/www text/html
1420537527.279 192.168.1.110 TCP_MISS/ GET http://alabo.com/ - FIRST_UP_PARENT/www text/html
1420537527.571 192.168.1.110 TCP_MISS/ GET http://alabo.com/images/css.css - FIRST_UP_PARENT/www text/css
1420537528.193 192.168.1.110 TCP_MISS/ GET http://alabo.com/images/benner6.jpg - FIRST_UP_PARENT/www image/jpeg
1420537528.205 192.168.1.110 TCP_MISS/ GET http://alabo.com/images/benner1.jpg - FIRST_UP_PARENT/www image/jpeg
1420537528.599 192.168.1.110 TCP_MISS/ GET http://alabo.com/images/benner2.jpg - FIRST_UP_PARENT/www image/jpeg
1420537528.606 192.168.1.110 TCP_MISS/ GET http://alabo.com/images/benner8.jpg - FIRST_UP_PARENT/www image/jpeg
1420537528.832 192.168.1.110 TCP_MISS/ GET http://alabo.com/images/benner4.jpg - FIRST_UP_PARENT/www image/jpeg
1420537529.101 192.168.1.110 TCP_MISS/ GET http://alabo.com/images/benner3.jpg - FIRST_UP_PARENT/www image/jpeg
1420537529.139 192.168.1.110 TCP_MISS/ GET http://alabo.com/images/benner7.jpg - FIRST_UP_PARENT/www image/jpeg
1420537529.198 192.168.1.110 TCP_MISS/ GET http://alabo.com/images/benner5.jpg - FIRST_UP_PARENT/www image/jpeg
1420537529.572 192.168.1.110 TCP_MISS/ GET http://alabo.com/images/bj1.jpg - FIRST_UP_PARENT/www image/jpeg
1420537530.190 192.168.1.110 TCP_MISS/ GET http://alabo.com/favicon.ico - FIRST_UP_PARENT/www text/html
1420537531.790 192.168.1.110 TCP_MISS/ GET http://alabo.com/ - FIRST_UP_PARENT/www text/html

## TCP_MISS 代表没有被 Squid 缓存,而是从原始服务器取出的并返回给用户的数据

shell > cat /var/log/squid/access.log | grep TCP_MEM_HIT

1420537531.980       192.168.1.110 TCP_MEM_HIT/  GET http://alabo.com/images/css.css - NONE/- text/css
1420537532.009 192.168.1.110 TCP_MEM_HIT/ GET http://alabo.com/images/benner1.jpg - NONE/- image/jpeg
1420537532.050 192.168.1.110 TCP_MEM_HIT/ GET http://alabo.com/images/benner2.jpg - NONE/- image/jpeg
1420537532.108 192.168.1.110 TCP_MEM_HIT/ GET http://alabo.com/images/benner3.jpg - NONE/- image/jpeg
1420537532.199 192.168.1.110 TCP_MEM_HIT/ GET http://alabo.com/images/benner4.jpg - NONE/- image/jpeg
1420537532.201 192.168.1.110 TCP_MEM_HIT/ GET http://alabo.com/images/benner5.jpg - NONE/- image/jpeg
1420537532.326 192.168.1.110 TCP_MEM_HIT/ GET http://alabo.com/images/benner7.jpg - NONE/- image/jpeg
1420537532.330 192.168.1.110 TCP_MEM_HIT/ GET http://alabo.com/images/benner6.jpg - NONE/- image/jpeg
1420537532.376 192.168.1.110 TCP_MEM_HIT/ GET http://alabo.com/images/benner8.jpg - NONE/- image/jpeg
1420537532.393 192.168.1.110 TCP_MEM_HIT/ GET http://alabo.com/images/bj1.jpg - NONE/- image/jpeg

## TCP_MEM_HIT 代表被 Squid 缓存到内存中并返回给用户的数据

shell > cat /var/log/squid/access.log | grep TCP_HIT

## TCP_HIT 代表被 Squid 缓存到 cache 目录(磁盘)中并返回给用户的数据

Squid 反向代理服务器配置的更多相关文章

  1. 利用squid 反向代理提高网站性能

    部分转自:http://www.ibm.com/developerworks/cn/linux/l-cn-squid/ Squid 反向代理的实现原理 目前有许多反向代理软件,比较有名的有 Nginx ...

  2. 利用Squid反向代理搭建CDN缓存服务器加快Web访问速度

    2011年11月26日 ? Web服务器架构 ? 评论数 2 案例:Web服务器:域名www.abc.com IP:192.168.21.129 电信单线路接入访问用户:电信宽带用户.移动宽带用户出现 ...

  3. m2014-architecture-imgserver->利用Squid反向代理搭建CDN缓存服务器加快Web访问速度

    案例:Web服务器:域名www.abc.com IP:192.168.21.129 电信单线路接入访问用户:电信宽带用户.移动宽带用户出现问题:电信用户打开www.abc.com正常,移动用户打开ww ...

  4. 利用 squid 反向代理提高网站性能(转载)

    本文在介绍 squid 反向代理的工作原理的基础上,指出反向代理技术在提高网站访问速度,增强网站可用性.安全性方面有很好的用途.作者在具体的实验环境下,利用 DNS 轮询和 Squid 反向代理技术, ...

  5. Squid 反向代理配置

    Squid 反向代理配置 1.删除主配置文件重写写入配置 rm -f /etc/squid/squid.conf 2.重新写入配置反向代理 vim /etc/squid/squid.conf # 监听 ...

  6. Squid 反向代理加速网站

    本实例的域名是 wenjin.cache.ibm.com.cn,通过DNS的轮询 技术,将客户端的请求分发给其中一台 Squid 反向代理服务器处理,如果这台 Squid 缓存了用户的请求资源,则将请 ...

  7. squid反向代理

    反向代理的作用是就爱那个网站中的静态自原本地化.也就是将一部分本应该有原是服务器处理的请求交给 Squid 缓存服务处理 编辑 Squid  服务程序的配置文件*(正向代理与反向代理不能同时使用,) ...

  8. 部署和调优 2.2 squid反向代理

    配置反向代理 打开配置文件 vim /etc/squid/squid.conf 修改 http_port 改为 http_port 80 accel vhost vport 在它下面添加一段 cach ...

  9. [nginx]Windows和Mac下,nginx反向代理服务器配置

    最近做项目,前端需要用到nginx反向代理来转发请求,总结了一下在Windows和Mac上的配置,以备查询. 一.Windows 修改nginx的配置文件,nginx.conf. 1)nginx.co ...

随机推荐

  1. HDU2604 Queuing 矩阵初识

    Queues and Priority Queues are data structures which are known to most computer scientists. The Queu ...

  2. 从hello world 说程序运行机制

    转自:http://www.cnblogs.com/yanlingyin/archive/2012/03/05/2379199.html 开篇 学习任何一门编程语言,都会从hello world 开始 ...

  3. 百度编辑器ueditor更改图片默认编辑工具

    点击图片编辑器默认出现的工具 需求是点击图片不出现默认样式,而是在编辑器外出现图片属性编辑框,需求效果如下 我的做法是在css里面将默认出现的工具隐藏,然后直接在ueditor.all.js里面修改S ...

  4. Nchan 实时消息 安全配置

    备注:     即时消息的安全对于我们来说是比较重要的,作者在设计Nchan 的时候已经考虑了 a. nchan_authorize_request (Hooks and Callbacks)可以集成 ...

  5. 基于C#的UDP协议的同步实现

    一.摘要 总结基于C#的UDP协议的同步通信. 二.实验平台 Visual Studio 2010 三.实验原理 UDP传输协议同TCP传输协议的区别可查阅相关文档,此处不再赘述. 四.实例  4.1 ...

  6. bzoj 3671 [Noi2014]随机数生成器——贪心(时间复杂度分配)

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3671 设 x 为一个点的行号, y 为一个点的列号:原本想着判断一个点能不能选就是看选了的点 ...

  7. 1.Django入门小Demo

    1.Django安装 (1)前提:已安装python环境 (2)打开命令行输入:pip install Django==2.1.3 (3)打开Pycharm,在File--Setting--Proje ...

  8. ngnix+uwsgi+django 部署mezzanine

    以下是我用ngnix+uwsgi+django 部署mezzanine全过程,其中ngnix+uwsgi这块是看了虫师大神的博客(http://www.cnblogs.com/fnng/p/52686 ...

  9. 贴几个erlang文档站点

    国外三方的文档,比较全, http://erldocs.com/ 这个貌似是国内的版本,不是很新 http://erldoc.com/ 国内dhq大神的,也不是很新 http://dhq.me/erl ...

  10. HDOJ5437(优先队列)

    Alisha’s Party Time Limit: 3000/2000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) ...