欢迎访问鸿雪径,这里介绍软件相关技术、动态以及鸿雪径杂谈,如有技术合作请与站长联系!邮费网 易食烤吧 特产大全网
首页 > Linux/Unix > 阿里云linux环境安装squid做正向代理服务

阿里云linux环境安装squid做正向代理服务

发布时间:2015-02-28 作者:伊君 点击:3424


  目前部署的某应用采用N台ECS+1个slb的方式负载均衡部署,ecs均未开通外网带宽。现在由于业务需要增加电子支付及微信公众服务功能,而这些功能需要调用互联网的api(基本都是ssl的),而ecs本身无外网带宽,无法访问外部地址。目前实现的思路是在开通一台ecs服务器的外网,在其上面安装代理服务软件,其它服务器通过这台代理进行互联网访问,由于web服务器采用nginx,所以想当然的就在nginx上面配置了正向代理,测试通过,可是程序跑的时候还是无法连接,经过检查才发现微信使用的https连接,而nginx不支持https的正向代理(因为其没有connect功能)。只好转战squid

常规的安装方式就是yum了

yum install squid -y

很快就会安装完成。

或者我们使用源代码安装:

cd /usr/local/src

wget http://www.squid-cache.org/Versions/v3/3.5/squid-3.5.2.tar.gz

tar -zxvf squid-3.5.2.tar.gz

cd squid-3.5.2

./configure --prefix=/usr/local/squid --enable-snmp --enable-storeio=diskd,ufs --enable-poll --disable-hostname-checks --enable-underscores --enable-x-accelerator-vary --enable-kill-parent-hack --enable-err-language="Simplify_Chinese" --enable-default-err-languages="Simplify_Chinese" --disable-ident-lookups --with-maxfd=65535

make

make install

   安装完成后就是配置工作了!

编辑/etc/squid/squid.conf为如下内容:

#################################

###   acl和http_pass访问控制   ###

#################################

acl manager proto cache_object

acl localhost src 127.0.0.1/32

acl to_localhost dst 127.0.0.0/8 0.0.0.0/32

acl all src 0.0.0.0/0.0.0.0



# 以下定义了局域网地址localnet

acl localnet src 10.0.0.0/8


 

# 定义SSL_ports为443

acl SSL_ports port 443

 

# 定义了Safe_ports所代表的端口

acl Safe_ports port 80      # http

acl Safe_ports port 443     # https

 

# 定义CONNECT代表http里的CONNECT请求方法

acl CONNECT method CONNECT

 

# 允许本机管理缓存

http_access allow manager localhost

# 拒绝其他地址管理缓存

http_access deny manager

 

# 拒绝不安全端口请求

http_access deny !Safe_ports

 

# 不允许连接非安全SSL_ports端口

http_access deny CONNECT !SSL_ports

 

# 拒绝连接到本地服务器提供的服务

# (用于保护本机一些只有本机用户才能访问的服务)

# http_access deny to_localhost

 

# 允许局域网用户的请求

http_access allow localnet

# 允许本机用户的请求

http_access allow localhost

 

# 拒绝其他所有请求

http_access deny all

 

#################################

###   squid 服务器基本配置      ###

#################################

 

# Squid的监听端口

http_port 3128

 

#################################

###   squid 缓存配置           ###

#################################

 

# 出现cgi-bin或者?的URL不予缓存

hierarchy_stoplist cgi-bin ?

 

# 磁盘缓存目录

#cache_dir ufs /webservers/squid 100 16 256

 

# squid挂掉后,临终遗言要放到哪里

coredump_dir /webservers/squid

 

# 刷新缓存规则

refresh_pattern -i (/cgi-bin/|?) 0 0%  0

refresh_pattern .       0   20% 4320

visible_hostname iZ28z295fu9Z


############################

service squid start

如果启动出错,去查看:

/var/log/squid/squid.out

使用netstat -na |grep 3128检查端口使用已经监听。

之后就是进行代理的测试了!

在需要访问外网的机器上执行以下操作之一即可:

  1. export http_proxy=http://yourproxyaddress:3128

  2. export https_proxy=http://yourproxyaddress:3128

2. gedit ~/.bashrc  

    export http_proxy=http://yourproxyaddress:3128

export https_proxy=http://yourproxyaddress:3128

yourproxyaddress也就是你的squid服务器的ip了,可以根据自己的需要修改。


更多关于 linux,阿里云,squid,正向代理 的信息
本站部分文章转载于网上,版权归原作者所有。如果侵犯您的权益,请Email和本站联系!
鸿雪径 www.HongXueJing.com  冀ICP备07017673号-4