squid 反向代理服务器

简介:

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

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

一、安装 Squid

shell > ulimit -n  # 默认打开文件描述符为 1024 ,要增大它
1024
shell > vim /etc/security/limits.conf

* - nofile 65535

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

shell > vim /etc/selinux/config

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

shell > reboot

shell > ulimit -n
65535

shell > getenforce
Disabled

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

shell > yum -y install squid

shell > rpm -qa squid
squid-3.1.10-29.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:80 accel vhost

## 将端口监听在 192.168.1.88 上,accel 指加速模式,vhost 用于转发请求

dns_nameservers 8.8.8.8

## 为了使 Squid 能解析域名需定义真实 DNS 地址

visible_hostname study.localhost.localdomain

## 计算机名,可以为 IP 地址,用于错误页面的显示

cache_mgr [email protected]

## 管理员邮箱地址,用于错误页面上的显示

cache_mem 300 MB

## 内存缓存大小,指定可以使用多少物理内存作为高速缓存。如果此服务器就是专门的缓存服务器,可以指定为物理内存的一半。否则不应大于三分之一

cache_dir ufs /opt/squid_cache 4096 16 256

## 缓存目录大小为 4G ,这个可以按实际磁盘大小来定,有 16 二级目录,每个二级目录下有 256 个子目录

maximum_object_size 4 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 7

## 日志轮转,7 代表保留 6 个旧的日志跟 1 个新日志( 需配合 crond 来使用 )

cache_swap_high 90

## 缓存磁盘空间大于 90% 时自动清理

cache_swap_low 80

## 清理到 80% 时停止

cache_peer 192.168.1.80 parent 80 0 originserver name=sina
cache_peer 192.168.1.80 parent 80 0 originserver name=baidu

## cache_peer 指定后端服务器地址,80 为后端服务端口,0 为 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
2015/01/06 17:31:14| Creating Swap Directories
2015/01/06 17:31:14| /opt/squid_cache exists
2015/01/06 17:31:14| Making directories in /opt/squid_cache/00
2015/01/06 17:31:14| Making directories in /opt/squid_cache/01
2015/01/06 17:31:14| Making directories in /opt/squid_cache/02
2015/01/06 17:31:14| Making directories in /opt/squid_cache/03
2015/01/06 17:31:14| Making directories in /opt/squid_cache/04
2015/01/06 17:31:14| Making directories in /opt/squid_cache/05
2015/01/06 17:31:14| Making directories in /opt/squid_cache/06
2015/01/06 17:31:14| Making directories in /opt/squid_cache/07
2015/01/06 17:31:14| Making directories in /opt/squid_cache/08
2015/01/06 17:31:14| Making directories in /opt/squid_cache/09
2015/01/06 17:31:14| Making directories in /opt/squid_cache/0A
2015/01/06 17:31:14| Making directories in /opt/squid_cache/0B
2015/01/06 17:31:14| Making directories in /opt/squid_cache/0C
2015/01/06 17:31:14| Making directories in /opt/squid_cache/0D
2015/01/06 17:31:14| Making directories in /opt/squid_cache/0E
2015/01/06 17:31:14| Making directories in /opt/squid_cache/0F

四、启动 Squid

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

五、测试

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

1420537525.011     34 192.168.1.110 TCP_MISS/404 561 GET http://alabo.com/favicon.ico - FIRST_UP_PARENT/www text/html
1420537527.279   1124 192.168.1.110 TCP_MISS/200 2028 GET http://alabo.com/ - FIRST_UP_PARENT/www text/html
1420537527.571    137 192.168.1.110 TCP_MISS/200 3271 GET http://alabo.com/images/css.css - FIRST_UP_PARENT/www text/css
1420537528.193    621 192.168.1.110 TCP_MISS/200 140767 GET http://alabo.com/images/benner6.jpg - FIRST_UP_PARENT/www image/jpeg
1420537528.205    770 192.168.1.110 TCP_MISS/200 68852 GET http://alabo.com/images/benner1.jpg - FIRST_UP_PARENT/www image/jpeg
1420537528.599   1151 192.168.1.110 TCP_MISS/200 232817 GET http://alabo.com/images/benner2.jpg - FIRST_UP_PARENT/www image/jpeg
1420537528.606    377 192.168.1.110 TCP_MISS/200 101177 GET http://alabo.com/images/benner8.jpg - FIRST_UP_PARENT/www image/jpeg
1420537528.832   1381 192.168.1.110 TCP_MISS/200 210193 GET http://alabo.com/images/benner4.jpg - FIRST_UP_PARENT/www image/jpeg
1420537529.101   1652 192.168.1.110 TCP_MISS/200 281791 GET http://alabo.com/images/benner3.jpg - FIRST_UP_PARENT/www image/jpeg
1420537529.139    947 192.168.1.110 TCP_MISS/200 75526 GET http://alabo.com/images/benner7.jpg - FIRST_UP_PARENT/www image/jpeg
1420537529.198   1747 192.168.1.110 TCP_MISS/200 244311 GET http://alabo.com/images/benner5.jpg - FIRST_UP_PARENT/www image/jpeg
1420537529.572    959 192.168.1.110 TCP_MISS/200 287741 GET http://alabo.com/images/bj1.jpg - FIRST_UP_PARENT/www image/jpeg
1420537530.190      2 192.168.1.110 TCP_MISS/404 561 GET http://alabo.com/favicon.ico - FIRST_UP_PARENT/www text/html
1420537531.790    200 192.168.1.110 TCP_MISS/200 2028 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      0 192.168.1.110 TCP_MEM_HIT/200 3277 GET http://alabo.com/images/css.css - NONE/- text/css
1420537532.009     16 192.168.1.110 TCP_MEM_HIT/200 68858 GET http://alabo.com/images/benner1.jpg - NONE/- image/jpeg
1420537532.050     31 192.168.1.110 TCP_MEM_HIT/200 232823 GET http://alabo.com/images/benner2.jpg - NONE/- image/jpeg
1420537532.108     66 192.168.1.110 TCP_MEM_HIT/200 281797 GET http://alabo.com/images/benner3.jpg - NONE/- image/jpeg
1420537532.199    139 192.168.1.110 TCP_MEM_HIT/200 210199 GET http://alabo.com/images/benner4.jpg - NONE/- image/jpeg
1420537532.201    102 192.168.1.110 TCP_MEM_HIT/200 244317 GET http://alabo.com/images/benner5.jpg - NONE/- image/jpeg
1420537532.326     61 192.168.1.110 TCP_MEM_HIT/200 75532 GET http://alabo.com/images/benner7.jpg - NONE/- image/jpeg
1420537532.330    112 192.168.1.110 TCP_MEM_HIT/200 140773 GET http://alabo.com/images/benner6.jpg - NONE/- image/jpeg
1420537532.376     71 192.168.1.110 TCP_MEM_HIT/200 101183 GET http://alabo.com/images/benner8.jpg - NONE/- image/jpeg
1420537532.393    128 192.168.1.110 TCP_MEM_HIT/200 287747 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 目录(磁盘)中并返回给用户的数据

时间: 2024-10-10 23:55:08

squid 反向代理服务器的相关文章

Windows下配置Squid反向代理服务器

Squid是一款类Unix系统下非常流行的服务器软件,其最重要的功能就是在客户端和服务端之间建立缓存.因而Squid可以用作反向代理,部署多级缓存或者搭建CDN等,无论名称是什么,本质上都是一样的.目前Windows下也有Squid的移植版本,可以应对使用Windows环境的场景.这里是下载地址和文档,如果需要了解Squid技术细节可以看看<Squid: The Definitive Guide>这本书的翻译版本. 一.安装Squid 如果下载Binaries版本,直接解压到c:\squid.

Squid 反向代理加速网站

本实例的域名是 wenjin.cache.ibm.com.cn,通过DNS的轮询 技术,将客户端的请求分发给其中一台 Squid 反向代理服务器处理,如果这台 Squid 缓存了用户的请求资源,则将请求的资源直接返回给用户,否则这台 Squid 将没有缓存的请求根据配置的规则发送给邻居 Squid 和后台的 WEB 服务器处理,这样既减轻后台 WEB 服务器的负载,又提高整个网站的性能和安全性.该系统结构图 3 如下: 图 3. 系统结构 配置的系统环境: 一台 DNS 服务器:操作系统 Fre

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

部分转自:http://www.ibm.com/developerworks/cn/linux/l-cn-squid/ Squid 反向代理的实现原理 目前有许多反向代理软件,比较有名的有 Nginx 和 Squid . Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器. Squid是由美国政府大力资助的一项研究计划,其目的为解决网络带宽不足的问题,支持

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

本文在介绍 squid 反向代理的工作原理的基础上,指出反向代理技术在提高网站访问速度,增强网站可用性.安全性方面有很好的用途.作者在具体的实验环境下,利用 DNS 轮询和 Squid 反向代理技术,实现了网站的负载均衡,从而提高了网站的可用性和可靠性. 现在有许多大型的门户网站如 SINA 都采用 squid 反向代理技术来加速网站的访问速度,可将不同的 URL 请求分发到后台不同的 WEB 服务器上,同时互联网用户只能看到反向代理服务器的地址,加强了网站的访问安全. 反向代理的概念 反向代理

squid正向代理和反向代理服务器搭建

squid是比较知名的代理软件,它不仅可以跑在Linux上还可以跑在Windows和UNIX上,它的技术已经非常成熟.目前使用squid的用户也十分广泛.squid与Linux下其他的代理软件如Apache.socks.TIS FWTK等相比,下载安装简单,配置简单灵活,支持缓存和多种协议. squid之所以用的很多,是因为它的的缓存功能,squid的缓存不仅可以节省宝贵的带宽资源,也可以大大降低服务器的I/O.从经济角度考虑,它是很多网站架构中不可或缺的角色. squid可以做正向代理,也可以

CentOS 6.6编译安装Squid 配置反向代理服务器

squid安装: 1.下载squid源码安装包 wget http://www.squid-cache.org/Versions/v3/3.2/squid-3.2.3.tar.gz 解压缩 tar zxvf squid-3.2.3.tar.gz 进入解压后的目录 cd squid-3.2.3(目录位置依据个人设定而不同) 安装 [[email protected] squid-3.2.3]# ./configure --prefix=/usr/local/squid --enable-gnure

转:反向代理服务器的工作原理

一.什么是反向代理 反向代理(Reverse Proxy)方式是指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器:并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器. 通常的代理服务器,只用于代理内部网络对Internet外部网络的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的 http请求发送到代理服务器中.不支持外部网络对内部网络的连接请求,因为内部网络对外部网络是不可见的.当一

Squid反向代理

普通代理方式是代理内部网络用户访问Internet上服务器的连接请求,客户端必须指定代理服务器,并将本来要直接发送到internet上服务器的连接请求发送给代理服务器处理. 反向代理方式是指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外表现问一台服务器. 1.反向代理流程说明: squid做为反向代理服务器,通常工作在一个服务器集群的前端,在用户端看来,squid服务器就是他

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

2011年11月26日 ? Web服务器架构 ? 评论数 2 案例:Web服务器:域名www.abc.com IP:192.168.21.129 电信单线路接入访问用户:电信宽带用户.移动宽带用户出现问题:电信用户打开www.abc.com正常,移动用户打开www.abc.com很慢,甚至打不开解决方案:在移动机房放置一台CDN代理服务器,通过智能DNS解析,让电信用户直接访问Web服务器.让移动用户访问CDN代理服务器,解决移动用户访问Web服务器慢的问题具体操作:CDN代理服务器:系统:Ce