首要要申请使用Amazon的EC2,具体步骤就不啰嗦了,不熟悉的同学可以参考以下步骤(Amazon网站上有详细的在线说明)。
账号注册
绑定信用卡:这个是必须过程,但不需要付费。
访问AWS控制台:https://console.aws.amazon.com
在主WEB面板点击compute的EC2
接着在EC2面板中点击Launch Instance
选择主机镜像
选择实例的类型,这里我们选择第一个:Free tier eligible,不要选择其它的,否则导致付费
配置实例的细节,这里要注意的是Auto-assign Public IP参数一定要Enable,否则你的VM是没有外网IP无法远程和上网的
添加存储,这里Amazon提示可以提升到30GB的存储,我这里用默认的就够了
定义实例标签
配置安全组(组里面是定义一些限制或者端口策略),这里有2个端口是要对外开放的:
- SSH协议的22端口:为了我们远程配置与管理
- http代理服务使用的3128端口(默认)
创建密钥对并下载私钥证书
选择上面下载到本地的私钥证书,用XSHELL(Linux)或putty(Windows)进行连接
下面我们进入正题,如何在5分钟时间内完成squid代理服务的搭建。
一、使用pull命令从docker hub 下载一个成熟的squid镜像
docker pull sameersbn/squid:latest
二、启动容器
docker run --name squid -d --restart=always --publish 3128:3128 --volume /srv/docker/squid/cache:/var/spool/squid3 sameersbn/squid:latest
三、从容器中将配置文件复制到主机(也可以使用attach方式直接进入容器修改相关配置文件后再食用commit命令持久化到镜像,但从后期维护的角度不建议采用这种方式)
docker cp squid:/etc/squid3/ .
四、修改已复制到主机的配置文件(设置访问权限等),最小修改一条即可。
vi squid.conf # And finally deny all other access to this proxy http_access allow all #将这里的 deny all 修改为 allow all
五、停止并删除正在运行的容器后,采用卷绑定主机配置文件的方式再重新启动
docker stop squid docker rm squid docker run --name squid -d --restart=always --publish 3128:3128 --volume /srv/docker/squid/cache:/var/spool/squid3 --volume /home/ec2-user/squid/squid3:/etc/squid3 sameersbn/squid:latest
六、现在一个私有的http代理服务器就已经搭建好了,修改浏览器的访问设置后就可以直接使用了。
export ftp_proxy=http://{EC2云主机ip}:3128 export http_proxy=http://{EC2云主机ip}:3128 export https_proxy=http://{EC2云主机ip}:3128
其他:
A、采用退出时清除容器的方式启动:
sudo docker run --name squid --rm --publish 3128:3128 --volume /srv/docker/squid/cache:/var/spool/squid3 --volume /home/ec2-user/squid/squid3:/etc/squid3 sameersbn/squid:latest
B、查看代理访问日志:
sudo docker exec -it squid tail -f /var/log/squid3/access.log
c、访问并进入正在运行的容器
sudo docker exec -it squid bash
使用Amazon免费云主机和Docker技术,快速搭建Squid服务器!
原文地址:http://sheepfish.blog.51cto.com/5047301/1683027