squid缓存服务器----传统模式

一. web代理的工作机制

  • 缓存网页对象,减少重复请求
    在这里插入图片描述
  • 以下的公司架构图辅助理解
    在这里插入图片描述

二. 代理的基本类型

  • 传统代理:适用于internet,需明确指明服务端
  • 透明代理:客户机不需要指定代理服务器的地址和端口,而是通过默认路由、防火墙策略将web访问重定向给代理服务器处理

三. 使用代理的好处

  • 提高web’访问速度
  • 隐藏客户机的真实IP地址

四. 部署squid 传统模式

12.0.0.22 代理服务器
12.0.0.23 apche服务器
12.0.0.100 访问客户端

4.1 修改主机名,便于识别

[root@lamp ~]# hostnamectl set-hostname squid
[root@lamp ~]# su
[root@squid ~]# 

[root@hostlocal ~]# hostnamectl set-hostname web
[root@hostlocal ~]# su
[root@web ~]# 

4.2 编译安装squid

./configure

拖入压缩包到opt下然后解压

[root@squid opt]# tar zxvf squid-3.4.6.tar.gz 
./configure解压
[root@squid squid-3.4.6]# cd squid-3.4.6/
[root@squid squid-3.4.6]# ./configure --prefix=/usr/local/squid \ ##安装路径
--sysconfdir=/etc \                                ##配置文件所在目录
--enable-arp-acl \                                  ##访问控制列表
--enable-linux-netfilter \                         ##内核过滤
--enable-linux-tproxy \                           ##支持透明模式
--enable-async-io=100 \                          ##io优化
--enable-err-language="Simplify_Chinese" \              ##支持报错语言形式
--enable-underscore \                              ##支持下划线
--enable-poll \                                           ##poll功能提升
--enable-gnuregex                                     ##支持正则表达式

mdke编译

[root@squid squid-3.4.6]# make && make install

做一个软连接让squid的命令能够被系统识别

[root@squid squid-3.4.6]# ln -s /usr/local/squid/sbin/ /usr/local/sbin

建立一个程序性用户管理squid

[root@squid squid-3.4.6]# useradd -M -s /sbin/nologin squid


赋予目录权限,var下有个run会跑squid里面的服务pid文件

[root@squidt squid-3.4.6]# chown -R squid.squid /usr/local/squid/var/

修改配置文件

[root@localhost squid-3.4.6]# vi /etc/squid.conf
56 http_access allow all                                             ##改为allow all允许所有访问
59 http_port 3128  下添加内容
cache_effective_user squid                                       ##缓存管理用户和组
cache_effective_group squid
wq保存退出

检查语法是否有错等同于niginx -t及初始化

[root@squid sbin]# squid -k parse           //检查语法
[root@squid sbin]# squid -z                //初始化

启动服务
[root@squid sbin]# squid
[root@squid sbin]# netstat -anpt|grep 3128
tcp6 0 0 :::3128 ::: LISTEN 36876/(squid-1)

把squid放入service中,给server管理

#!/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 -anpt|grep squid &> /dev/null
           if [ $? -eq 0 ];then
                echo "squid is runing"
                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 -anpt|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
[root@localhost init.d]# cd /etc/init.d/
[root@localhost init.d]# chmod +x squid
[root@localhost init.d]# chkconfig --add squid
[root@localhost init.d]# service squid stop
[root@localhost init.d]# service squid start

4.3 设置传统代理

4.31 修改主配置文件

[root@localhost squid-3.4.6]# vi /etc/squid.conf
接着3128端口下继续插入
cache_mem 64 MB ##缓存空间
reply_body_max_size 10 MB ##允许用户下载最大容量
maximum_object_size 4096 KB ##缓存中存储对象上限值

###################################################
如下:
http_port 3128
cache_mem 64 MB
reply_body_max_size 10 MB
maximum_object_size 4096 KB
cache_effective_user squid
cache_effective_group squid

4.32 清空防火墙和关闭核心防护添加新的规则允许代理

[root@localhost init.d]# iptables -F  
[root@localhost init.d]# setenforce 0
setenforce: SELinux is disabled

root@localhost init.d]# iptables -I INPUT -p tcp --dport 3218 -j ACCEPT

root@localhost init.d]# service squid restart

4.4 web端的配置(20.0.0.23)

[root@localhost opt]# yum -y install httpd
[root@localhost opt]# systemctl start httpd

注意:使用客户端12.0.0.100 访问web,观察web端httpd的日志,若访问ip为代理服务器则,代理成功

4.5 访问客户机的设置(20.0.0.100)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.5 回到httpd 服务器观察日志(12.0.0.23)

查看实际的ip地址看是否为代理服务器(12.0.0.22)进行访问

[root@localhost ~]# tail -f /var/log/httpd/access_log 
12.0.0.22 - - [04/Nov/2020:09:56:39 +0800] "GET / HTTP/1.1" 403 4897 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
12.0.0.22 - - [04/Nov/2020:09:56:40 +0800] "GET /noindex/css/bootstrap.min.css HTTP/1.1" 200 19341 "http://12.0.0.23/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
12.0.0.22 - - [04/Nov/2020:09:56:40 +0800] "GET /noindex/css/open-sans.css HTTP/1.1" 200 5081 "http://12.0.0.23/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值