上海网站seo公司,永州公司做网站,最新消息深圳龙岗确诊,国家企业信息平台Squid是Linux系统中最常用的一款开源代理服务软件#xff0c;主要提供缓存加速和应用层过滤控制的功能#xff0c;可以很好的实现HTTP、FTP、DNS查询以及SSL等应用的缓存代理。 正向代理#xff1a;根据实现的方式不同#xff0c;代理服务可分为传统代理和透明代理。 传统代…Squid是Linux系统中最常用的一款开源代理服务软件主要提供缓存加速和应用层过滤控制的功能可以很好的实现HTTP、FTP、DNS查询以及SSL等应用的缓存代理。 正向代理根据实现的方式不同代理服务可分为传统代理和透明代理。 传统代理普通的代理服务多见于Internet环境必须在客户机的浏览器、QQ聊天工具、下载软件等程序中手动设置代理服务器对的地址和端口才能使用代理服务器来访问网络。对于网页浏览器访问网站时的域名解析请求会发送给指定的代理服务器。透明代理提供与传统代理相同的功能和服务多见于局域网环境其区别在于客户机不需要指定代理服务器的地址和端口而是通过默认路由、防火墙策略将Web访问重定向实际上仍然交给代理服务器处理。网页浏览器访问网站时的域名解析请求会优先发给DNS服务器。反向代理将不同的URL请求分发到后台不同的Web服务器上通过squid反向代理可以加速网站的访问速度同时互联网用户只能看到反向代理服务器的地址加强网站的访问安全。 官方地址http://www.squid-cache.org/ 参考文档http://www.squid-cache.org/Doc/config/ Squid安装 1.编译安装Squid 将下载的Squid软件包解压至/opt目录下。 [rootlocalhost abc]# tar zxvf squid-3.5.28.tar.gz -C /opt/ 准备编译环境配置Squid的编译选项并进行安装。 yum install -y gcc gcc-c make cd /opt/squid-3.5.28./configure --prefix/usr/local/squid \ //安装目录
--sysconfdir/etc \ //单独将配置文件修改到其他目录
--enable-arp-acl \ //可以在规则中设置为直接通过客户端MAC进行管理防止客户端使用IP欺骗
--enable-linux-netfilter \ //使用内核过滤
--enable-linux-tproxy \ //支持透明模式
--enable-async-io100 \ //异步I/O提升存储性能
--enable-err-languageSimplify_Chinese \ //错误信息的显示语言
--enable-underscore \ //允许URL中有下划线
--enable-poll \ //使用Poll()模式提升性能
--enable-gnuregex //提升GNU正则表达式 make make install 2.安装完成后创建链接文件、创建用户和组。 ln -s /usr/local/squid/sbin/* /usr/local/sbin/ //便于使用squid命令useradd -M -s /sbin/nologin squid //创建用户和组chown -R squid.squid /usr/local/squid/var/ //创建文件的属性 3.编辑配置文件/etc/squid.conf vim /etc/squid.conf cache_effective_user squid //添加 指定squid的程序用户用来设置初始化、运行时缓存的账户否则启动不成功 cache_effective_group squid //添加 指定账号的基本组 coredump_dir /usr/local/squid/var/cache/squid 4.启动squid服务使用squid服务脚本。 1检查配置文件的语法是否正确。 squid -k parse 2先初始化缓存目录调用squid程序来启动服务。 squid -z //初始化缓存目录squid //启动服务 确认服务处于监听状态。 [rootlocalhost squid-4.1]# netstat -ntap | grep squid
tcp6 0 0 :::3128 :::* LISTEN 86805/(squid-1) 3编写squid启动脚本并使用chkconfig和service工具进行管理。 vim /etc/init.d/squid#!/bin/bash
#chkconfig: 2345 90 25
PID/usr/local/squid/var/run/squid.pid
CONF/etc/squid.conf
CMD/usr/local/squid/sbin/squidcase $1 instart)netstat -natp | grep squid /dev/nullif [ $? -eq 0 ]thenecho squid is runningelseecho 正在启动 squid...$CMDfi;;stop)$CMD -k kill /dev/nullrm -rf $PID /dev/null;;status)[ -f $PID ] /dev/nullif [ $? -eq 0 ]thennetstat -natp | grep squidelseecho squid is not runningfi;;restart)$0 stop /dev/nullecho 正在关闭 squid...$0 start /dev/nullecho 正在启动 squid...;;reload)$CMD -k reconfigure;;check)$CMD -k parse;;*)echo 用法$0{start|stop|status|reload|check|restart};;
esacchmod x /etc/init.d/squid //执行权限chkconfig --add squid //添加为系统服务
chkconfig --level 35 squid on 构建传统代理服务器 案例需求描述 基于Internet环境。一台Linux主机作为web服务器启用httpd服务。一台Linux主机构建Squid服务允许客户机使用代理。一台Windows7主机指定所使用的代理服务器地址、端口号信息。主机系统IPsquid 主机CentOS7172.16.100.110web服务器CentOS7172.16.100.100客户机windows 7172.16.100.501.squid服务器的配置 1修改squid.conf配置文件 vim /etc/squid.confhttp_access allow all //允许任意客户机使用代理服务
http_access deny all
http_port 3128
cache_mem 64 MB //指定缓存功能所使用的内存空间大小便于保持访问较频繁的WEB对象容量最好为4的倍数单位为MB建议设为物理内存的1/4
reply_body_max_size 10 MB //允许用户下载的最大文件大小以字节为单位。默认设置0表示不进行限制
maximum_object_size 4096 KB 2在防火墙上添加允许策略 iptables -F
setenforce 0
iptables -I INPUT -p tcp --dport 3128 -j ACCEPT 3重载squid服务 service squid reload //生效修改后的配置文件 2.客户机的代理设置 1Windows客户机的代理配置 打开浏览器以IE为例其他类似菜单栏 - 工具 - Internet 选项 - 连接 - 局域网设置 - 代理服务器按照以下格式设置。 2Linux客户机的代理配置 在命令行界面中使用代理服务器如elinks网页浏览器、wget下载工具,必须通过环境变量来指定代理服务器的地址、端口等信息。 vim /etc/profileHTTP_PROXYhttp://192.168.235.206:3128 //使用HTTP协议指定代理HTTPS_PROXYhttp://192.168.235.206:3128 //使用HTTPS协议指定代理FTP_PROXYhttp://192.168.235.206:3128 //使用FTP协议指定代理NO_PROXY192.168.10.,192.168.20. //对两个局域网段指定代理export HTTP_PROXY HTTPS_PROXY FTP_PROXY NO_PROXYsource /etc/profile 3.网站服务器的设置 1安装httpd关闭防火墙 yum install httpd -y
systemctl stop firewalld.servie
setenforce 0 2启动httpd服务并加入开机自启动 systemctl start httpd.service
chkconfig httpd on 3创建index.html echo h1Squid-Web1/h1 /var/www/html/index.html 4.代理服务的验证 在客户机中通过浏览器访问目标网站http://172.16.100.100/查看Squid访问日志的新增记录 查看Web访问日志的新增记录当客户机使用代理后web服务器并不知道客户机的真实ip实际上是由代理服务器访问。 构建透明代理服务器 案例需求描述 基于局域网主机通过Linux网关访问Internet的环境。一台Linux主机作为Internet上的web服务器启动httpd服务。一台Linux主机作为网关服务器并构建Squid服务提供代理服务。一台windows7主机作为局域网的客户机,只需正确设置IP地址、默认网关。主机系统IPsquid 网关CentOS7ens33:192.168.100.1 ens37:12.0.0.1web服务器CentOS712.0.0.12客户机windows 7192.168.100.201.配置Squid支持透明代理 vim /etc/squid.confhttp_port 192.168.100.1:3128 transparent //添加 提供透明服务service squid reload //重新加载服务 配置文件其余地方的修改参考前面的传统代理的配置处。 2.设置iptables的重定向策略 将局域网段192.168.100.0/24且访问HTTP、HTTPS等协议的数据包转交给运行在本机3128端口上的Squid服务进行处理。 iptables -Fiptables -t nat -I PREROUTING -i ens33 -s 192.168.100.0/24 -p tcp --dport 80 -j REDIRECT --to 3128iptables -t nat -I PREROUTING -i ens33 -s 192.168.100.0/24 -p tcp --dport 443 -j REDIRECT --to 3128iptables -I INPUT -p tcp --dport 3218 -j ACCEPT 3.开启路由转发功能 vim /etc/sysctl.conf net.ipv4.ip_forward 1sysctl -p 4.网站服务器配置如上述操作步骤一样 5.验证透明代理的使用 如果客户机上存在手动指定的代理服务器设置应将其去除。在Linux客户机可以通过unset命令清除。 unset HTTP_PROXY HTTPS_PROXY 在客户机中通过浏览器访问目标网站http://12.0.0.12/ 验证结果在Squid代理服务器中发现客户机访问网站服务器的记录 在被访问的web服务器中发现来自代理服务器的访问记录。 反向代理 客户端请求访问 WEB 服务时DNS 将访问的域名解析为 Squid 反向代理服务器的 IP 地址这样客户端的 URL 请求将被发送到反向代理服务器。如果 Squid 反向代理服务器中缓存了该请求的资源则将该请求的资源直接返回给客户端否则反向代理服务器将向后台的 WEB 服务器请求资源然后将请求的应答返回给客户端同时也将该应答缓存在本地供下一个请求者使用。 案例环境主机系统IPsquid 网关CentOS7ens33:192.168.100.1 ens37:12.0.0.1web1服务器CentOS7192.168.100.100web2服务器CentOS7192.168.100.120客户机windows 712.0.0.501.配置squid服务器 vim /etc/squid.confhttp_port 192.168.100.1:3128 transparent //启动透明代理http_port 12.0.0.1.1:80 accel vhost vport
cache_peer 192.168.100.100 parent 80 0 no-query originserver round-robin max_conn30 weight1 nameweb1
cache_peer 192.168.100.120 parent 80 0 no-query originserver round-robin max_conn30 weight1 nameweb2
cache_peer_domain web1 web2 www.yun.comservice squid restart 2.配置防火墙策略 iptables -t nat -I PREROUTING -i ens33 -s 192.168.100.0/24 -p tcp --dport 80 -j REDIRECT --to 3128iptables -t nat -I PREROUTING -i ens33 -s 192.168.100.0/24 -p tcp --dport 443 -j REDIRECT --to 3128iptables -I INPUT -p tcp --dport 3218 -j ACCEPT 3.配置两个网站服务器操作步骤如上述一样不同的是修改web主页。 #web1
echo h1Squid-Web1/h1 /var/www/html/index.html#web2
echo h1Squid-Web2/h1 /var/www/html/index.html 4.配置客户端 这里可以使用DNS服务来解析这里我们为了方便就在hosts 文件里直接指定。 修改C:\Windows\System32\drivers\etc\hosts 文件 5.测试反向代理 在客户端访问目标网站www.yun.com关闭web1的httpd服务在web1服务器清除缓存访问网站如图所示然后在客户端清除缓存访问www.yun.com 如图所示刷新一次可以看到反向代理缓存成功。转载于:https://blog.51cto.com/11134648/2152058