服务器迁移---squid反向代理

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
日志服务 SLS,月写入数据量 50GB 1个月
简介:

前言:
       公司服务器需要进行迁移,从A机柜到B机柜,二机柜之间的距离为10米。哈哈。好近,尽管很近,但IP段不一样。
因此web,dns,mail,mysql 都得切换~
在这里呢,先写一些切换前的准备工作,squid 反向代理就是其中之一

特别感谢IORI,明的指点!!!感谢党,感谢人民,感谢51CTO,感谢你们~

 

一.反向代理的概念 
 
什么是反向代理呢?其实,反向代理也就是通常所说的WEB服务器加速,它是一种通过在繁忙的WEB服务器和Internet之间增加一个高速的

WEB缓冲服务器(即:WEB反向代理服务器)来降低实际的WEB服务器的负载。典型的结构如下图所示:

   120582463885.jpg
 
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之间,如下图所示:

120582464005.jpg
 
当用户浏览器发出一个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       parent    80  0 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 中的目录

相关的调试命令:

[url]http://bbs.chinaunix.net/thread-960422-1-1.html[/url]

 

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  

配置文件设置不对: 
acl  all  src 0.0.0.0/0.0.0.0 
http_access allow all

 

重新测试:OK 一切正常~~~

查看相应日志一切正常。

 

四. 配置squid 是方便web进行切换,至于dns,mysql,mail切换文章请大家期待~

   总体来说,squid 配置不是很麻烦,主要是配置文件里的每一项,对服务器的产生的影响非常的重要。细节决定成功~



本文转自守住每一天51CTO博客,原文链接:http://blog.51cto.com/liuyu/66507,如需转载请自行联系原作者

相关文章
|
1月前
|
弹性计算 Linux Windows
跨账号和同账号的ECS云服务器之间迁移教程
跨账号和同账号的ECS云服务器之间迁移教程
|
1月前
|
SQL 分布式计算 关系型数据库
Hadoop-21 Sqoop 数据迁移工具 简介与环境配置 云服务器 ETL工具 MySQL与Hive数据互相迁移 导入导出
Hadoop-21 Sqoop 数据迁移工具 简介与环境配置 云服务器 ETL工具 MySQL与Hive数据互相迁移 导入导出
58 3
|
1月前
|
弹性计算 Linux 数据库
阿里云国际版如何迁移Linux云服务器系统盘中的数据
阿里云国际版如何迁移Linux云服务器系统盘中的数据
ly~
|
1月前
|
网络协议 应用服务中间件 Apache
如何在 DNS 记录中设置反向代理服务器?
要设置反向代理服务器,首先需安装配置软件(如 Nginx 或 Apache),并确保域名正确指向服务器 IP。接着,在 DNS 中设置 A 或 CNAME 记录,将域名指向反向代理服务器。然后编辑 Nginx 或 Apache 的配置文件,将请求转发至后端服务器。最后,通过浏览器访问域名测试配置是否成功,并使用工具检查请求流向和响应情况。
ly~
138 3
ly~
|
1月前
|
缓存 监控 安全
反向代理服务器的常见故障有哪些?
反向代理服务器常遇到的故障包括配置错误、网络问题、性能瓶颈及安全漏洞。配置相关故障如错误监听端口、域名配置不当及代理转发规则错误,可使用`netstat -tuln`检查端口状态,并验证域名及DNS解析。网络故障涉及连接中断和带宽不足,利用`ping`和`traceroute`检测连通性,用`iftop`监控带宽。性能问题如资源耗尽和缓存不一致需通过`top`监控资源使用,并检查缓存策略。安全故障包括DDoS攻击和配置漏洞,应使用流量分析工具检测异常并加强安全配置,确保SSL/TLS加密和访问控制策略正确无误。
ly~
121 3
ly~
|
1月前
|
域名解析 网络协议 Linux
如何测试 DNS 记录中的反向代理服务器是否生效?
本文介绍了三种测试反向代理服务器配置的方法。首先,通过命令行工具如 `ping`、`nslookup` 和 `dig` 检查域名解析是否指向正确的 IP 地址。其次,利用 Web 浏览器访问域名,验证页面加载正常且请求头信息无误。最后,借助网络抓包工具如 `Wireshark` 和 `tcpdump` 分析数据包,确保请求正确转发并返回预期响应。
ly~
113 2
|
1月前
|
Apache 数据中心 Windows
将网站迁移到阿里云Windows系统云服务器,访问该站点提示连接被拒绝,如何处理?
将网站迁移到阿里云Windows系统云服务器,访问该站点提示连接被拒绝,如何处理?
|
1月前
|
弹性计算 网络协议 Linux
云服务器评估迁移时间与测试传输速度
云服务器评估迁移时间与测试传输速度
|
3月前
|
负载均衡 应用服务中间件 Linux
"揭晓nginx的神秘力量:如何实现反向代理与负载均衡,拯救服务器于水火?"
【8月更文挑战第20天】在Linux环境下,nginx作为高性能HTTP服务器与反向代理工具,在网站优化及服务器负载均衡中扮演重要角色。本文通过电商平台案例,解析nginx如何解决服务器压力大、访问慢的问题。首先介绍反向代理原理,即客户端请求经由代理服务器转发至内部服务器,隐藏真实服务器地址;并给出配置示例。接着讲解负载均衡原理,通过将请求分发到多个服务器来分散负载,同样附有配置实例。实践表明,采用nginx后,不仅服务器压力得到缓解,还提升了访问速度与系统稳定性。
86 3
|
4月前
|
弹性计算 Linux 网络安全
使用阿里云服务器迁移中心SMC将其他云平台业务迁移至阿里云教程参考
现在越来越多的个人和企业用户选择将其他云平台或者服务商的业务迁移到阿里云,但是如何快速且安全完成迁移是很多用户比较关注的问题,我们可以选择使用阿里云提供的服务器迁移中心(Server Migration Center,简称SMC),这个产品是阿里云提供给您的迁移平台,专注于提供能力普惠、体验一致、效率至上的迁移服务,满足您在阿里云的迁移需求。本文为大家展示使用阿里云服务器迁移中心SMC将其他云平台业务迁移至阿里云的教程,以供参考。
使用阿里云服务器迁移中心SMC将其他云平台业务迁移至阿里云教程参考
下一篇
无影云桌面