squid反向代理相关笔记

squid是一种高效的的代理服务器和Web缓存服务器,他的发展历史相当悠久,功能也相当完善。除了HTTP外,对于FTP与HTTPS的支援也相当好,在3.0 测试版中也支援了IPv6。好VPS也断断续续的折腾过几次,时间跨度很大,所以有必要对之前的做个总结备忘,基于个人能力问题,难免错漏,环境大家指正!部分设定均来源于网络,尤其得到tiger.im老虎同志的大力协助,在此一并致谢。
squid

A服务器反向代理B(web服务器)

首先,我们一起来看看如何使用一台服务器或者VPS反向代理另一台服务器或者另一个服务器上的域名。我们假设用于squid的服务器为A,而真实后端web服务器为B。
首先,在A服务器编译squid,以root账户ssh登陆A,运行下列命令(本文基于CentOS 5.* 32bit)

yum install squid

编译过程很快,如果有安装httpd,可以移除之。

yum remove httpd

接下来是最重要的部分,编辑squid.conf文件(文件位置/etc/squid/),squid.conf配置项目较多,网络上关于常规的设定教程也很多,本文我们主要是记录能使用它反代另一台服务器或者域名,所以,我们仅列出需要修改的前后端地址及域名部分,大家也可以下载好VPS部落提供的配置文件去修改:点击下载squid.conf

cache_peer *.*.*.* parent 80 7 no-query originserver name=www1
cache_peer_domain www1 vpsok.net www.vpsok.net

上面的*.*.*.*换成您的web服务器IP,如果有多个域名,可以自行添加www2,www3……如果反代web服务器上的所有域名,可以删除cache_peer_domain行。
完成后上传,并重载下squid。

service squid reload

设定开机启动squid

chkconfig –level 2345 squid on
chkconfig  squid on

这样操作后,您可以将B服务器上的域名,解析指向A服务器IP,由A服务器反代最终地址。这种方式简单易行,比如欧洲的服务器便宜,但国内访问速度欠佳,可以给他来个港台日韩的squid前端,缓存后的速度提升还是比较明显的;但缺点是直接用了80端口反代,这台squid服务器再做web服务器就比较麻烦了。

LNMP环境下squid前端nginx后端

这个方式是在同一台服务器操作,在编译lnmp环境的web服务器上使用squid作为前端,nginx后端。
首先,编译lnmp,过程略(本文军哥lnmp一键包基础)
完成后安装squid

yum install squid

删除掉默认的squid配置文件

rm  /etc/squid/squid.conf

之后传入上一方式中提供的squid.conf(也可以自行编辑)
在这一种方式中,我们还需要修改配置文件,因为squid做前端占用了80端口,而nginx也是使用80端口,都用80端口肯定是不行的,本文我们修改nginx使用8888端口。先来修改squid.conf文件。

cache_peer 127.0.0.1  parent 8888 7 no-query originserver name=www1
cache_peer_domain www1 vpsok.net www.vpsok.net

上面的127.0.0.1表示反向代理本机后端,端口8888可以自行修改,只要不与系统其他端口冲突即可。
如果需要代理多个,可以继续添加。
接下来,我们还需要修改nginx的配置信息。

vi /usr/local/nginx/conf/nginx.conf

修改端口80为8888

server
{
listen       8888;

如果希望以后添加域名自动使用8888端口,还可以修改vhost.sh文件。

server
{
listen       8888;
server_name $domain$moredomainame;
index index.html index.htm index.php default.html default.htm default.php;

全部完成后,重启下lnmp和squid。

/root/lnmp restart
service squid restart

最后设定squid为开机启动。

chkconfig –level 2345 squid on
chkconfig  squid on

这样我们在这台服务器的站点就是squid前端,nginx后端了。


香港/美国/国内高速VPS

postid
20862

发表评论