首页 > 系统相关 >CentOS搭建squid正向代理

CentOS搭建squid正向代理

时间:2023-04-26 11:38:07浏览次数:45  
标签:缓存 CentOS squid 代理服务器 cache proxy 正向 #####

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 [email protected]

正向代理客户端配置

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

配置完成

标签:缓存,CentOS,squid,代理服务器,cache,proxy,正向,#####
From: https://www.cnblogs.com/timo521/p/17355085.html

相关文章

  • 关于在linux-centos7下部署 .net core程序绘图(PDF等)丢失中文字体的解决方案
    关于在linux-centos7下部署.netcore程序绘图(PDF等)丢失中文字体的解决方案说明:1:以下操作基于新系统,如果步骤一,二已经安装则不需要额外安装.需要注意的是,在使用(yuminstall包)的时候如果提示包不存在;需要运行步骤(一:5安装epel,企业版Linux额外包)2:以下()内代表......
  • centos5.6配置本地源
    现在网上已经没有centos6.5能用的源了,所以自己建是最方便,稳妥的了,写了一个脚本自动搞定#!/bin/bashdir=$(pwd)if[!-f"$dir/CentOS-6.5-x86_64-bin-DVD1.iso"];thencurl-oCentOS-6.5-x86_64-bin-DVD1.isohttp://192.168.0.6/CentOS-6.5-x86_64-bin-DVD1.isofimk......
  • CentOS7再次探讨修改系统的启动模式(运行级别)
    1.查看当前运行级别:systemctlget-default或者runlevel或者who-r2.查看文件夹/lib/systemd/system/ll/lib/systemd/system|grepmulti-user.target ll/lib/systemd/system|grepgraphical.target ll/lib/systemd/system/default.target可以看到当前默认的runle......
  • CentOS7修改开机启动模式:命令行模式(runlevel=3)
    1.打开文件/etc/inittab: sudo/etc/inittab显示当前的runlevel:systemctlget-default设置默认的运行级别:systemcltset-defaultXX.target。XX可以是multi-user或者graphical按照提示在终端中执行命令:systemctlset-defaultmulti-user.target注意:按照inittab文件中的提......
  • centos7下安装ifconfig 命令
    1,查找安装包 [root@localhostnetwork-scripts]#yumsearchifconfig已加载插件:fastestmirrorLoadingmirrorspeedsfromcachedhostfile*base:centos.ustc.edu.cn*extras:centos.ustc.edu.cn*updates:centos.ustc.edu.cn===================================......
  • centos linux系统安装详解
    打开vmware,版本差异区别不大选择创建新的虚拟机  选择典型,是默认选项不用改,点击下一步 选择稍后安装操作系统(默认选项不用改),点击下一步 选择linux,并且版本改为centos64位,点击下一步 虚拟机名称随便改,位置是指虚拟机的位置,点击浏览,自己选择位置,点击下一步 最大......
  • Hyper-V安装centos系统作为本地服务器教程
    下载CentOS镜像以下是镜像下载地址:https://repo.huaweicloud.com/centos/7.9.2009/isos/x86_64/因为要做服务器使用,所以推荐下CentOS-7-x86_64-Minimal-2009.iso版本。启用Hyper-vwindows系统一般没有默认打开hyper-v功能,需要手动开启。如果已开启请跳过该步骤。按下组合......
  • Centos7.9安装JDK1.8
    卸载Centos自带JDK卸载系统自带的JDK;通过以下命令查看是否已经安装JDKyumlistinstalled|grepjava或者如下命令都可以查看到是否安装了JDKwhereisjavafind/-namejava如图:  如果安装了则通过以下命令进行删除:yum-yremovejava安装JDK下面通过两种方......
  • CentOS 服务器部署 DNS 解析服务
    需求在centos云服务器上部署一个dns解析服务,以供windows电脑可以使用这个服务器ip作为网络的dns代理。我的服务器ip为192.168.126.241,我想在我的windows电脑访问abc.baidu.com时解析到ip为110.112.113.111的服务器上,访问www.baidu.com时解析到123.111.111.111的服务器上。尽量模......
  • CentOS 7.x部署cerebro
    1、简介Cerebro是Elasticsearch版本5.x以前插件ElasticsearchKopf的演变,可以通过图形界面查看分片分配和执行常见的索引操作。完全开源,需要依赖Java1.8或更高版本才能运行。2、安装#安装javayum-yinstalljava#解压wgethttps://github.com/lmenezes/cerebro/relea......