这里有新鲜出炉的精品教程,程序狗速度看过来!
Squid cache(简称为 Squid)是一个流行的自由软件,它符合 GNU 通用公共许可证。Squid 作为网页服务器的前置 cache 服务器,可以代理用户向 web 服务器请求数据并进行缓存,也可以用在局域网中,使局域网用户通过代理上网。Squid 主要设计用于在 Linux 一类系统运行。
这篇文章主要给大家介绍了在 CentOS 7 中使用 Squid 提供 HTTP 代理的相关资料,以及及客户端的代理配置的方法,需要的朋友可以参考学习,下面来一起看看吧。
本文主要记录了一下设置 CentOS 服务器使用 Squid 作为 HTTP 代理,及客户端的代理配置的方法,下面来看看详细的介绍吧。
使用 Squid 提供 HTTP 代理
主机上安装和设置 Squid
作为网关的 n147 机器,公网 IP 是 2.2.2.147。安装 Squid,然后修改配置,启用服务。
- yum install -y squid
- # squid的配置文件在 /etc/squid/squid.conf,修改内容可参考下面的Dockerfile
- # 修改配置后,初始化squid的工作目录
- squid -z
- # 启动服务
- systemctl enable squid
- systemctl start squid
以 Docker 容器的方式运行 Squid
Dockerfile 内容如下:
- FROM alpine:latest
- RUN apk update --no-cache; \
- apk add squid --no-cache
- # 可以在squid.conf中限制允许访问此代理的IP范围,否则只有内网IP可以访问
- RUN sed -i "/RFC 4291/a acl ics src 2.2.2.0/24" squid.conf; \
- sed -i "/RFC 4291/a acl ics src 2.2.3.3/32" squid.conf
- # 可以修改默认的端口号,如果修改了默认端口,需要修改下面的 EXPOSE 部分
- RUN sed -i "/http_port/c http_port 8888" squid.conf
- # 开启cache
- RUN sed -i '/cache_dir/s/#//g' /etc/squid/squid.conf
- # 或者直接使用修改过的配置文件
- # ADD squid.conf /etc/squid/squid.conf
- # squid -z用于初始化,创建cache目录,但直接在Dockerfile中
- # RUN squid -z
- # 却无法创建cache目录,导致squid无法启动
- # 故将初始化和启动命令写入脚本中
- RUN echo -e '#!/bin/sh\n[ -d /var/cache/squid/00 ] || squid -z\nsquid -N' >/squid.sh; \
- chmod +x /squid.sh
- EXPOSE 3128
- CMD ["/squid.sh"]
构造镜像:
- docker build ./ -t squid:latest
启动容器:
- docker run -d -p 3128:3128 --name squid squid:latest
使用 HTTP 代理
内网其它不能直接访问外网的机器可以设置使用 n147 提供的代理服务。
全局的环境变量
在 / etc/environment(不需要 export),/etc/profile 或 / etc/profile.d/http_proxy.sh 导出 http_proxy 和 https_proxy
- export http_proxy = http: //2.2.2.147:3128
- export https_proxy = http: //2.2.2.147:3128
squid 可以作为 https 代理,只要设置
, 即这个环境变量以 http:// 开头。
- https_proxy=http://2.2.2.147:3128
Docker
Docker 需要单独设置代理,新建文件 / etc/systemd/system/docker.service.d/http-proxy.conf,内容如下(注意多项环境变量之间要有空格,还设置了对私有镜像仓库不使用代理):
- [Service]
- Environment="HTTP_PROXY=http://2.2.2.147:3128" "HTTPS_PROXY=http://2.2.2.147:3128" "NO_PROXY=localhost,10.0.0.147"
重启
,执行
- docker daemon: systemctl restart docker
查看是否生效。
- docker info
yum
yum 会使用全局代理设置,也可以单独设置代理,在 / etc/yum.conf 中增加:
- proxy = http: //2.2.2.147:3128
apt
在文件 / etc/apt/apt.conf 中增加:
- Acquire: :http: :proxy "http://2.2.2.147:3128";
- Acquire: :https: :proxy http: //2.2.2.147:3128;
总结
来源: http://www.phperz.com/article/17/0529/334699.html