一.反向代理的概念
什么是反向代理呢?其实,反向代理也就是通常所说的WEB服务器加速,它是一种通过在繁忙的WEB服务器和Internet之间增加一个高速的
WEB缓冲服务器(即:WEB反向代理服务器)来降低实际的WEB服务器的负载。典型的结构如下图所示:
Web服务器加速(反向代理)是针对Web服务器提供加速功能的。它作为代理Cache,但并不针对浏览器用户,而针对一台或多台特定Web服务器
(这也是反向代理名称的由来)。实施反向代理(如上图所示),只要将Reverse Proxy Cache设备放置在一台或多台Web服务器前端即可。当
互联网用户访问某个WEB服务器时,通过DNS服务器解析后的IP地址是Reverse Proxy Server的IP地址,而非原始Web服务器的IP地址,这时
Reverse Proxy Server设备充当Web服务器,浏览器可以与它连接,无需再直接与Web服务器相连。因此,大量Web服务工作量被卸载到反向代理
服务上。不但能够防止外部网主机直接和web服务器直接通信带来的安全隐患,而且能够很大程度上减轻web服务器的负担,提高访问速度。
二.反向代理工作原理
反向代理服务器位于本地WEB服务器和Internet之间,如下图所示:
当用户浏览器发出一个HTTP请求时,通过域名解析将请求定向到反向代理服务器(如果要实现多个WEB服务器的反向代理,需要将多个WEB
服务器的域名都指向反向代理服务器)。由反向代理服务器处理器请求。反向代理一般只缓存可缓冲的数据(比如html网页和图片等),而一
些CGI脚本程序或者ASP之类的程序不缓存。它根据从WEB服务器返回的HTTP头标记来缓冲静态页面。
以上来自互联网
三.squid做反向代理
1.安装
注:如果系统是redhat 9,需要安装epoll的库文件(epoll有效的降低系统的I/0瓶颈,资源占用率)
wget [url]http://www.squid-cache.org/Versions/v3/3.0/squid-3.0.STABLE2.tar.gz[/url]
为了安全起见,建立squid运行的用户及组
useradd squid -M -c "Squid user" -d /dev/null -s /sbin/nologin
tar zxvf squid-3.0.STABLE2.tar.gz
cd squid-3.0.STABLE2
./configure
--prefix=/usr/local/squid3 --disable-carp --with-aufs-threads=32
--with-pthreads --enable-storeio='ufs,aufs,coss,null'
--enable-disk-io='AIO,Blocking' --enable-removal-policies='heap,lru'
--disable-wccp --enable-kill-parent-hack --disable-snmp --disable-poll --disable-select --enable-auth=basic --with-aio
--disable-ident-lookup --with-filedescriptors=65536
编译参数:
--prefix=/usr/local/squid3 :指定安装路径 为便于管理
--enable-poll :提升性能
--enable-snmp :此选项可以让MRTG使用SNMP协议对服务器的流量状态进行监测,因此必须选择此项,使Squid
支持SNMP接口。
--enable-storeio=ufs,null #使用的文件系统通常是默认的ufs,不过如果想要做一个不缓存任何文件的代理
服务器,就需要加上null文件系统。
其它的参数等待大家来解释。HOHO ~
make;make install
安装完毕。
2.配置
注意
:squid 的配置文件在:/usr/local/squid3/etc/squid.conf
这里是最重要的,也是最难的。
http_port 80 选项 http_port 指定squid监听HTTP请求的端口,一般都设置成80端口,这样使用户感觉不到反向代理的存在,就像访问真正
的WEB服务器一样。
cache_mem 128 MB共享内存大小(squid在提供服务的时候所使用的内存)
maximum_object_size_in_memory 512 KB 最大内存缓存OBJECT值~如果超过则不再内存中缓存~而存入IO中!
memory_replacement_policy lru替换机制(lru叫做 最近不常用的单元 unit一般就是常说的object 也就是当cache中的内容比如内存或硬盘达到上限时的 那么就需要进行数据的换进和换出工作)
cache_dir null/tmp cache_dir存储cache内容也就是object的物理存放点
cache_dir ufs /tmp1 10000 16 256(/tmp size L1 L2)
100G其中1层目录16个 并且每个1层目录下又有256个2层目录[或者说子目录]
#磁盘缓存的类型和目录,大小,一二级目录的设置,这里磁盘缓存大小是10G
ufs是一种文件存储方式 因为os一般都是从内存获取数据 那么内存的东西必须最后写的硬盘上~
sync 同步的时候用的ufs 那么squid也是一样
ufs一般是同时写入内存和硬盘
注意:size是按照M为单位的也就这个目录中最大存储容量的上限
max_open_disk_fds 0
minimum_object_size 0 KB
maximum_object_size 4096 KB
logformat squid%ts.%03tu %6tr %>a %Ss/%03Hs %<st %rm %ru %un %Sh/%<A %mt
设置access_log中日志存储的格式~
access_log /usr/local/squid3/var/logs/access.log squid
access_log为客户端请求的日志
cache_log /usr/local/squid3/var/logs/cache.log
为squid自身的运行日志
pid_filename /usr/local/squid3/var/logs/squid.pid
此三项是设置PID和日志文件位置
cache_store_log none不记录store.log
visible_hostname liuyu.blog.51cto.com
liuyu.blog.51cto.com只是标签有利于检查是否你的那台设备在提供服务!
cache_peer 192.168.1.53 parent800 no-query round-robin max-conn=32 originserver
squid2.5以上都是用的cache_peer来指定所需要代理的服务器的IP 这一点很重要!
由于本例squid 与web 不在同一服务器,因此需要cache_peer 指定相应WEB服务器IP
acl all src 0.0.0.0/0.0.0.0
acl QUERY urlpath_regex cgi-bin .php .cgi .avi .wmv .rm .ram .mpg .mpeg .zip .exe
cache deny QUERY
cache_effective_user squid
cache_effective_group squid
在这里我所以的日志都记录在:/usr/local/squid3/var/logs里
给目录相应的权限
chmod 666 -R /usr/local/squid3/var/logs
chown squid:squid -R /usr/local/squid3/var/logs
保存配置!
3.测试配置是否正确
# /usr/local/squid2/sbin/squid -k parse
出现ERROR:
WARNING: Cannot write log file: /usr/local/squid3/var/logs/cache.log
/usr/local/squid3/var/logs/cache.log: Permission denied
messages will be sent to 'stderr'.
2008/03/13 12:53:09| Creating Swap Directories
FATAL: Failed to make swap directory /usr/local/squid3/var/cache: (13) Permission denied
很明显权限不对,修改后测试通过!
/usr/local/squid2/sbin/squid -z
-z Create swap directories 是创建SWAP目录的! 也就是cache_dir 中的目录
相关的调试命令:
4.启动squid
/usr/local/squid3/sbin/squid -Nd1
ps aux |grep squid 查看是否启动
5.测试访问WEB站点
本机hosts 文件指向squid代理服务器
出现ERROR:
Access Denied.
访问拒绝
Access control configuration prevents your request from being allowed at this time. Please contact your service provider if
you feel this is incorrect.
当前的存取控制设定禁止您的请求被接受,如果您觉得这是错误的,请与您网路服务的提供者联系。
本缓存服务器管理员:webmaster
配置文件设置不对:
aclallsrc 0.0.0.0/0.0.0.0
http_access allow all
重新测试:OK 一切正常~~~
查看相应日志一切正常。
四. 配置squid 是方便web进行切换,至于dns,mysql,mail切换文章请大家期待~
总体来说,squid 配置不是很麻烦,主要是配置文件里的每一项,对服务器的产生的影响非常的重要。细节决定成功~
本文出自 “seven
” 博客,请务必保留此出处http://liuyu.blog.51cto.com/183345/66507
分享到:
相关推荐
通过以上步骤,便成功配置了一个基本的Squid反向代理服务器,实现了实验目的中的要求:对特定域名的请求进行代理,同时支持其他域名直接访问Web服务器。 ### 总结 本文档详细介绍了如何在RHEL5.5和Windows Server 2003...
有需要的可以学习,可以给您的网站做反向代理加速。
本文将详细讲解如何使用Squid进行反向代理配置,通过提供的文件名,我们可以看到有四种不同的配置场景:单站点代理、多站点代理、以及两种实现Web站点负载均衡的方法(sibling形式和常规方式)。 1. **单站点代理**...
在本文中,我们将深入探讨Squid反向代理的配置与使用。 首先,要安装Squid,你可以从官方网站下载最新版本,如在示例中提到的wget命令。解压并编译安装,配置选项包括`–prefix`指定安装路径,`–enable-storeio`...
### RHEL5上使用LVS与Heartbeat实现Squid反向代理的高可用性 #### 实验背景及目的 本实验旨在RHEL5(Red Hat Enterprise Linux 5)操作系统上构建一个基于LVS(Linux Virtual Server)和Heartbeat的高可用性Squid...
Squid反向代理服务器也可以实现身份验证和访问控制,提高 WEB 服务器的安全性。 反向代理服务器是提高WEB服务器性能和安全性的解决方案。它可以降低WEB服务器的负载,提高访问速度,并且可以防止外部网主机直接和...
Linux运维-6.集群-集群视频-5、Squid缓存、代理服务-20、Squid 反向代理、ACL访问控
下载反向代理服务器软件采用squid,下载地址: http://www.squid-cache.org/Versions/v2/2.2/squid-2.2.STABLE5-src.tar.gz 下载后存放在/usr/local/squid/src目录里,文件名是 squid-2.2.STABLE5 ...
Squid 代理在运维领域扮演着重要角色,它可以灵活地作为正向代理、透明代理或在某些情况下作为反向代理。了解并正确配置这些代理模式有助于提升网络性能、安全性和用户体验。无论是企业内部的网络管理还是优化公共...
Squid缓存代理服务器的安装与配置(普通代理 透明代理 反向代理) Squid缓存代理服务器是一种流行的代理服务器和Web缓存服务器软件,广泛应用于提高Web服务器速度、缓存万维网、域名系统和其他网络搜索、帮助网络...
### Centos中Squid代理服务器安装与基本配置(含反向代理) #### 一、Squid代理服务器概述 Squid是一个广泛使用的代理缓存服务器,它能够为用户提供透明或非透明的代理服务,同时也支持反向代理功能。在教育环境中...
四、Squid反向代理 Squid不仅可以作为正向代理,还可以作为反向代理,用于负载均衡和网站优化。在反向代理模式下,Squid接收客户端的请求,然后转发给后端服务器,返回结果给客户端。通过配置`proxy_server`或`...
【LVS + Squid 构建HA反向代理方案】是一种高效的高可用性集群解决方案,旨在提高Web服务的性能和稳定性。LVS(Linux Virtual Server)由章文嵩博士领导开发,是一个开源项目,旨在创建高并发、高性能、高可用的网络...
实验内容包括四个部分:Squid正向代理服务器的配置与测试、Squid透明代理服务器的配置与测试、Squid反向代理服务器的配置与测试,以及Squid最新版本的下载与安装。 四、实验步骤和调试过程 实验步骤和调试过程包括...
Squid实现反向代理并且具备内网代理 Squid是一款功能强大且广泛使用的开源反向代理服务器软件,可以实现缓存、过滤、加速和安全等功能。下面是使用Squid实现反向代理并且具备内网代理的知识点总结: 一、Squid的...
本文档详细介绍了如何使用Squid作为反向代理并设置为内网代理,以优化网站性能。 首先,为了安装Squid,通常会通过Ports Collection来简化流程。在FreeBSD系统中,可以进入Ports目录,然后设置安装路径,接着编译并...
案例:Web服务器:域名www.abc.com IP:192.168.21.129 电信单线路接入访问用户:电信宽带用户、移动宽带用户出现问题:电信用户打开www.abc.com正常,移动用户...配置反向代理搭建CDN缓存服务器安装前准备:1、关闭SE
Squid 服务器是 Linux 下的一种流行的代理服务器软件,它可以实现正向代理、透明代理和反向代理等多种代理模式。本文将总结 Squid 服务器的配置与管理,在实验中,我们将使用 VMware 和 Red Hat Enterprise Linux ...
安装篇: 本教程应用环境为干净centos 5.5 ,预先分好并加载/data分区,并且关闭selinux及iptables 首先修改文件描述符并设定临时端口范围,这些设置重启后生效 代码如下: cat >> /etc/security/limits.conf <...
3. **Squid反向代理服务器配置**: - 反向代理用于将客户端请求转发给特定的后台服务器,常用于负载均衡和内容分发。 - 配置Squid以代理特定域名或端口,例如设置所有对www.example.com的请求都转至内部服务器。 ...