CentOS搭建squid正向代理

squid介绍

官网地址:http://www.squid-cache.org/


Squid cache(简称为 Squid)是一个流行的自由软件(GNU 通用公共许可证)的代理服务器和 Web 缓存服务器。Squid 有广泛的用途,从作为网页服务器的前置 cache 服务器缓存相关请求来提高 Web 服务器的速度,到为一组人共享网络资源而缓存万维网,域名系统和其他网络搜索,到通过过滤流量帮助网络安全,到局域网通过代理上网。Squid 主要设计用于在 Unix 一类系统运行。

Squid 的发展历史相当悠久,功能也相当完善。除了 HTTP 外,对于 FTP 与 HTTPS 的支援也相当好,在 3.0 测试版中也支援了 IPv6。

Squid主要提供缓存加速、应用层过滤控制的功能。

代理的工作机制

(1)代替客户机向网站请求数据,从而可以隐藏用户的真实IP地址。

(2)将获得的网页数据(静态 Web 元素)保存到缓存中并发送给客户机,以便下次请求相同的数据时快速响应。

代理服务器的概念及其作用

代理服务器是一个位于客户端和原始(资源)服务器之间的服务器,为了从原始服务器取得内容,客户端向代理服务器发送一个请求并指定目标原始服务器,然后代理服务器向原始服务器转交请求并将获得的内容返回给客户端。

缓存代理对于Web至关重要,尤其对于大型高负载Web站点。缓存可作为性能优化的一个重要手段,可以极大减轻后端服务器的负载。通常对于静态资源,即较少经常更新的资源,如图片,css或js等进行缓存,从而在每次刷新浏览器的时候,不用重新请求,而是从缓存里面读取,这样就可以减轻服务器的压力。

主要作用

(1)资源获取:代替客户端实现从原始服务器的资源获取

(2)加速访问:代理服务器可能离原始服务器更近,从而起到一定的加速作用

(3)缓存作用:代理服务器保存从原始服务器所获取的资源,从而实现客户端快速的获取

(4)隐藏真实地址:代理服务器代替客户端去获取原始服务器资源,从而隐藏客户端真实信息

squid的三种代理类型

squid软件主要有三种代理类型:

  • 正向代理:代理内部主机上网,共享上网,缓存,控制内网用户上网行为等功能(客户端需要设置代理服务器的IP和代理端口)。
  • 透明代理:客户机不需指定代理服务器的地址和端口,而是通过默认路由、防火墙策略将Web访问重定向给代理服务器处理。
  • 反向代理:如果 Squid 反向代理服务器中缓存了该请求的资源,则将该请求的资源直接返回给客户端;否则反向代理服务器将向后台的 WEB 服务器请求资源,然后将请求的应答返回给客户端,同时也将该应答缓存在本地,供下一个请求者使用。

正向代理分析图:
image

反向代理分析图:
image

squid安装和配置文件说明

安装软件

# yum镜像仓库里有squid的软件包
yum -y install squid

# squid配置初始化
cat >> /etc/squid/squid.conf<< EOF
cache_mem 64 MB
maximum_object_size 4 MB
maximum_object_size_in_memory 4096 KB
cache_dir ufs /var/spool/squid 100 16 256
access_log /var/log/squid/access.log
EOF

# squid初始化
squid -z

# 启动squid并设置为开机启动
service squid start && systemctl enable squid

# 检查squid是否正常运行
netstat -ntlp | grep squid

# 如果防火墙开启的话,放开3128端口
firewall-cmd --zone=public --add-service=squid --permanent

软件的文件列表

/etc/squid/squid.conf           # 配置文件
/etc/rc.d/init.d/squid          # 启动脚本
/usr/sbin/squid                 # 二进制命令
/usr/share/doc/squid-3.1.10     # 手册
/var/log/squid                  # 日志目录
/var/spool/squid                # 缓存目录

配置文件说明

# cat /etc/squid/squid.conf

#####	设置监听的IP与端口号
http_port 3128

#####	额外提供给squid使用的内存大小,默认256 MB
cache_mem   64 MB   

#####	设置squid磁盘缓存最大文件,超过4M的文件不保存到硬盘
maximum_object_size 4 MB   

#####	设置squid磁盘缓存最小文件
minimum_object_size 0 KB 

#####	设置squid内存缓存最大文件,超过4M的文件不保存到内存
maximum_object_size_in_memory 4096 KB  

#####	定义squid的cache存放路径 、cache目录容量(单位M)、一级缓存目录数量、二级缓存目录数量,此处的100 一定要大于 cache_mem 否则报错。
cache_dir ufs /var/spool/squid 100 16 256  

#####	log文件日志格式
logformat combined %&gt;a %ui %un [%tl] "%rm %ru HTTP/%rv" %Hs %<st "%{Referer}>h" "%{User-Agent}&gt;h" %Ss:%Sh

#####	log文件存放路径和日志格式
access_log /var/log/squid/access.log combined

#####	设置缓存日志
cache_log /var/log/squid/cache.log

#####	log轮转60天
logfile_rotate 60

#####	cache目录使用量大于95%时,开始清理旧的cache
cache_swap_high 95

#####	cache目录清理到90%时停止
cache_swap_low 90

#####	定义本地网段
acl localnet src 192.168.1.0/24

#####	允许本地网段使用
http_access allow localnet

#####	拒绝所有
http_access deny all

#####	主机名
visible_hostname xxx.xxxx.xxxx

#####	管理员邮箱
cache_mgr 123456@qq.com

正向代理客户端配置

Windows客户端配置代理:

Internet 选项 > 连接 > 局域网设置 ”,在代理服务器区域,按照以下格式设置:
image

Linux客户端:

先创建并修改/etc/profile.d/proxy.sh文件

# 创建proxy.sh文件
touch /etc/profile.d/proxy.sh

编辑proxy.sh文件

# 进入profile.d目录
cd /etc/profile.d/
# 编辑proxy.sh文件
vim proxy.sh

添加下列内容

# squid正向代理只支持http、https、ftp协议,把下面的proxy_server_ip更换为自己搭建的squid服务器IP
export https_proxy=http://proxy_server_ip:3128
export http_proxy=http://proxy_server_ip:3128
export ftp_proxy=http://proxy_server_ip:3128

执行source /etc/profile使其生效

# 执行source /etc/profile
source /etc/profile

配置完成

原文链接:https://www.cnblogs.com/timo521/p/17355085.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:CentOS搭建squid正向代理 - Python技术站

(0)
上一篇 2023年4月27日
下一篇 2023年4月27日

相关文章

  • linux下wget命令的基本使用方法

    下面是“linux下wget命令的基本使用方法”的完整攻略。 wget命令简介 wget是一个在linux中常用的下载工具,使用wget可以下载文件、图片、视频等等。它支持多种协议,如HTTP、HTTPS、FTP等,可以自动识别链接中的文件格式并进行下载。 wget命令的基本使用方法 下载单个文件 使用wget下载单个文件的基本命令格式为: wget [UR…

    Linux 2023年5月14日
    00
  • linux下使用python打开terminal时报错如何解决

    这篇文章主要介绍“linux下使用python打开terminal时报错如何解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“linux下使用python打开terminal时报错如何解决”文章能帮助大家解决问题。 linux下使用python打开terminal时报错 场景一:在jenkins上执行自动化任务,测试…

    Linux 2023年4月10日
    00
  • [Linux] ubuntu环境安装和使用elasticsearch

    wget -qO – https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -apt-get install apt-transport-httpsecho “deb https://artifacts.elastic.co/packages/7.x/apt stable …

    Linux 2023年4月13日
    00
  • 使用速度最快的yum源的方法

    使用速度最快的yum源是使我们在Linux环境中更快速高效地安装和更新软件的方法,本攻略将为大家介绍如何找到最快的yum源并配置。 1. 寻找最快的yum源 有许多在线工具可以帮助我们找到最快的yum源,下面以”Fastestmirror”工具为例。 1.1 安装Fastestmirror 首先,我们需要使用以下命令来安装”Fastestmirror”工具:…

    Linux 2023年5月14日
    00
  • 如何在Linux系统上安装和配置数据库?

    在Linux系统上安装和配置数据库有多种方式,下面我将介绍其中两种常用的方式:安装MySQL和安装PostgreSQL。 安装MySQL 1. 安装MySQL 在Ubuntu和Debian系统上,可以使用以下命令来安装MySQL: sudo apt-get update sudo apt-get install mysql-server 在CentOS和Fe…

    Linux 2023年4月19日
    00
  • Linux C – UDP数据收发

      基于UDP的通信时不可靠地,面向无连接的,发送的数据无法确切知道对方收到没有,通常用于对可靠性要求不高的通信中,使用简单,UDP没有严格区分server端和client端,唯一的区别是绑不绑定(bind)端口。 1,接收程序(server) #include <sys/types.h> #include <sys/socket.h&gt…

    Linux 2023年4月13日
    00
  • Centos 7系统虚拟机桥接模式详解

    Centos 7系统虚拟机桥接模式详解 在Centos 7系统中,虚拟机可以通过桥接模式连接到主机网络中,让虚拟机与主机在同一个局域网中。本文将详细介绍Centos 7系统虚拟机桥接模式的配置过程和注意事项。 配置桥接模式 要使用虚拟机桥接模式连接到主机网络中,需要进行以下步骤: 确保宿主机网络是可用的,可以正常连接到局域网或互联网,可以使用命令ping w…

    Linux 2023年5月24日
    00
  • Linux – mysql 异常:登录不上mysql数据库

    问题描述 重启虚拟机之后,用命令 mysql -u root -p 登录不上 mysql 数据库,页面显示: 但是,用命令 service mysqld status 可以查看状态   解决方案 1、查看 mysql 相关的 pid 命令:ps -ef|grep mysql   2、杀死相关进程 kill -9 2568 kill -9 2454   3、重…

    Linux 2023年4月11日
    00
合作推广
合作推广
分享本页
返回顶部