您的位置:首页 > 运维架构 > 反向代理

Linux下使用Squid搭建代理服务器

2015-03-16 23:21 706 查看

背景介绍

一般情况下大家会使用CCProxy搭建代理服务器,这种方法简单易用,但是也存在较多问题:

1.软件受注册限制只能允许3人使用;

2.CCProxy的代理请求仅支持常见的GET和POST等,对于SVN通过代理去update等请求就不支持了;

3.代理的认证方式仅有基本的Basic方式,其他的ntlm等认证方式不支持等。

为了能够解决以上问题,尝试使用Squid在Linux上搭建了代理服务器,分享其中的搭建方法:

一、安装Squid:

如果系统中还没有装squid,按以下顺序输入命令后即可完成安装

1. 下载Squid安装包

# wget http://www.squid-cache.org/Versi ... 3.0.STABLE18.tar.gz


2. 解压Squid安装包

# tar -zxvf squid-3.0.STABLE18.tar.gz


3. 配置Squid

# cd squid-3.0.STABLE18
//配置Squid代理安装路径之类的
# ./configure --prefix=/usr/local/squid --sysconfdir=/usr/local/squid/etc --bindir=/usr/local/squid/bin --sbindir=/usr/local/squid/sbin --mandir=/usr/local/squid/share/man --enable-gnuregex --enable-carp --enable-async-io=80 --enable-removal-policies=heap,lru --enable-icmp --enable-delay-pools --enable-useragent-log --enable-referer-log --enable-kill-parent-hack --enable-snmp --enable-arp-acl --enable-htcp --enable-cache-digests --enable-default-err-language=Simplify_Chinese --enable-err-languages="Simplify_Chinese" --enable-poll --enable-linux-netfilter --disable-ident-lookups --enable-underscores --enable-auth="basic" --enable-basic-auth-helpers="NCSA" --enable-external-acl-helpers="ip_user" --enable-x-accelerator-vary


4. 编译

# make


5. 安装

# makeinstall //安装Squid代理软件 


二、配置Squid

1. Squid的配置文件保存在/usr/local/squid/etc的squid.conf文件中

2. 配置Squid项:

a. 启动squid时如果不在squid.conf中设置主机名将无法启动,必须要设置visible_hostname这个参数值,本文中,设置的主机名是服务器的真实机器名powersite,在squid.conf中找到该项并修改:

#visible_hostname linuxserver


b. 开启http_access的访问权限

#http_access allow all


三、配置Squid的密码验证功能

1. 创建密码文件。

密码和用户名存放在/etc/squid/squid_passwd文件中,并需要将这个文件的权限设置为其它用户只读。

# touch /etc/squid/squid_passwd
# chmod o+r /etc/squid/squid_passwd


2. 使用htpasswd添加用户,并设置密码。

添加用户不需要对squid进行重启操作,我创建的用户名是setest

# htpasswd /etc/squid/squid_passwd setest
New password:
Re-type password for user setest


3. 找到ncsa_auth命令的具体位置,后面的配置需要用到绝对路径

# which ncsa_auth
/usr/sbin/ncsa_auth


如果找不到ncs_auth的话,可以直接去squid的压缩包解压目录中拷贝一份到/usr/sbin/ncsa_auth,例如:

cp helpers/basic_auth/NCSA/ncsa_auth /usr/sbin/ncsa_auth


4. 在squid.conf文件中定义验证程序了,创建名为ncsa_users的ACL并加入关键字REQUIRED来强制让Squid使用NCSA验证方法。

#
# 在squid.conf的auth_param部分添加下列内容
#
auth_param basic program /usr/sbin/ncsa_auth /etc/squid/squid_passwd

#
# 将以下ACL添加到squid.conf的ACL配置部分
#
acl ncsa_users proxy_auth REQUIRED

#
# 将这些内容添加到squid.conf的http_access配置部分
#
http_access allow ncsa_users


四、启动Squid

1. /usr/local/squid/sbin目录下的squid为运行文件。
2. 第一次运行时,先运行squid -z创建缓存文件夹。缓存文件夹在/usr/local/squid/var下创建,因此创建缓存前还需运行chmod 777 /usr/local/squid/var给该文件夹权限。
再运行squid -d 1开启squid即可。
3. 如果要关闭squid,运行squid -k shutdown则是安全关闭。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: