Squid代理

简介

Squid是一种开源代理服务器软件,常用于提供缓存和过滤功能的网络服务。它可以通过缓存经常访问的网页来提高访问速度,并且可以过滤一些不需要的内容,提高网络安全性。Squid代理可以应用于许多场合,例如企业内网、ISP、电子商务网站、教育机构和政府部门等。它支持多种协议,包括HTTP、HTTPS、FTP和gopher等,可以在不同的平台上运行,如Linux、Unix和Windows等。

举例:

假设这三台机器分别为:

  • Squid代理服务器:IP地址为192.168.1.100
  • Linux的Apache服务器:IP地址为192.168.1.101
  • Windows服务器:IP地址为192.168.1.102

工作原理如下:

  1. 用户通过Windows服务器(192.168.1.102)发出HTTP请求。
  2. Squid代理服务器(192.168.1.100)接收到请求,根据配置信息判断是否需要缓存请求的内容,并将请求转发给Apache服务器(192.168.1.101)。
  3. Apache服务器(192.168.1.101)接收到请求后进行处理,生成HTTP响应,再将响应发送给Squid代理服务器(192.168.1.100)。
  4. Squid代理服务器(192.168.1.100)接收到响应后,根据配置信息决定是否对响应进行缓存,并将响应转发给Windows服务器(192.168.1.102)。
  5. Windows服务器(192.168.1.102)接收到响应后将其呈现给用户。

这样的部署可以提高网络访问速度,减轻服务器负载,并且可以对常用的网页内容进行缓存,以提高用户体验和节省网络流量。

其中Windows是通过squid代理的IP访问的Apache网站。

脚本:

#!/bin/bash
#function: squid服务部署
#author: zhubinbin
##############################
#####root判断#####
if
  [  "$USER"  != "root"   ]
then
   echo "错误:非root用户,权限不足!"
  exit  0
fi
############防火墙与高级权限##########
systemctl stop firewalld && systemctl disable firewalld  && echo "防火墙已经关闭"
sed -i 's/SELINUX=.*/SELINUX=disabled/g'  /etc/selinux/config  && echo "关闭selinux"
##################环境安装######################
yum -y install gcc gcc-c++  &>/dev/null
####################安装#######################
wget -P /root  http://www.squid-cache.org/Versions/v3/3.5/squid-3.5.23.tar.gz
if [ -e /root/squid-3.5.23.tar.gz ];then
          echo "安装包下载完成"
else
          echo "安装包下载失败"
          exit 2
fi
###################编译安装###########################
tar xf /root/squid-3.5.23.tar.gz &>/dev/null
cd /root/squid-3.5.23/
./configure \
--prefix=/usr/local/squid \
--sysconfdir=/etc \
--enable-arp-acl \
--enable-linux-netfilter \
--enable-linux-tproxy \
--enable-async-io=100 \
--enable-err-language="Simplify_Chinese" \
--enable-underscore \
--enable-poll \
--enable-gnuregex
if [ $? = 0 ];then
     echo "编译成功"
else
     echo "编译失败"
     exit 2
fi
make && make install
if [ $? = 0 ];then
     echo "编译安装成功"
else
     echo "编译安装失败"
     exit 2
fi
########################创建软连接############################
ln -s /usr/local/squid/sbin/* /usr/local/sbin/
##########################创建用户并文件授权####################
useradd -M -s /sbin/nologin squid
chown -R squid.squid /usr/local/squid/var/
#############################################################
sed -i 's/http_access deny all/http_access allow all/g' /etc/squid.conf
cat >> /etc/squid.conf << EOF
cache_effective_user squid 
cache_effective_group squid
EOF
squid -k parse
squid -z
squid
netstat -ntap |grep 3128
###############################添加服务到service管理#############################
cat > /etc/init.d/squid << EOF
#!/bin/bash
#chkconfig: 2345 90 25
PID="/usr/local/squid/var/run/squid.pid"
CONF="/etc/squid.conf"
CMD="/usr/local/squid/sbin/squid"

case "$1" in
   start)
     netstat -natp | grep squid &> /dev/null
     if [ $? -eq 0 ]
     then
       echo "squid is running"
       else
       echo "正在启动 squid..."
       $CMD
     fi
   ;;
   stop)
     $CMD -k kill &> /dev/null
     rm -rf $PID &> /dev/null
   ;;
   status)
     [ -f $PID ] &> /dev/null
        if [ $? -eq 0 ]
          then
            netstat -natp | grep squid
          else
            echo "squid is not running"
        fi
   ;;
   restart)
      $0 stop &> /dev/null
      echo "正在关闭 squid..."
         $0 start &> /dev/null
      echo "正在启动 squid..."
   ;;
   reload)
      $CMD -k reconfigure
   ;;
   check)
      $CMD -k parse
   ;;
   *)
      echo "用法:$0{start|stop|status|reload|check|restart}"
   ;;
esac

chmod +x /etc/init.d/squid

chkconfig --add squid
chkconfig --level 35 squid on
EOF
#############################防火墙配置##############################
iptables -F
iptables -F -t nat
setenforce 0
iptables -I INPUT -p tcp --dport 3128 -j ACCEPT
systemctl restart squid

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值